#47918 [Opn]: stream_set_blocking() does not work with pipes opened with proc_open()

From: Date: Mon, 24 Aug 2009 08:59:41 +0000
Subject: #47918 [Opn]: stream_set_blocking() does not work with pipes opened with proc_open()
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-141418@lists.php.net to get a copy of this message
 ID:               47918
 User updated by:  RQuadling at GMail dot com
 Reported By:      RQuadling at GMail dot com
 Status:           Open
 Bug Type:         Streams related
 Operating System: Windows
 PHP Version:      5.*, 6CVS (2009-06-19
 New Comment:

Essentially, non-blocking streams don't exist in win32 PHP.

They work fine for non-win32, so maybe this should become a feature 
request.

From reading the MSDN sites regarding non-blocking/blocking, it seems 
that a completely different mechanism for file handling needs to be 
used.

Other scripting languages have solved this issue in a different
fashion, 
using an additional thread to process the stream.


Previous Comments:
------------------------------------------------------------------------

[2009-08-22 05:51:48] nobodyy at mailinator dot com

Same problem here...

If we use proc_open and the output (pipes[1]) is greater than 2kb, 
the application just gets stuck!

I don't have any idea why, but it is never terminated, unless we do 
an FREAD of FGETS at the pipe[1].

But we can't do the FGETS if we don't know if there is content to be 
read. There is when stream_set_blocking should save the day.. But it 
doesn't work! :(

------------------------------------------------------------------------

[2009-07-28 09:47:05] morrisdavidd at gmail dot com

I tested this on PHP 5.3 (on Linux) and duplicated the error that the
print_r command shows blocking as true. HOWEVER, the stream does not
block when actually tested... a simple test script can be created by
adding a line and slightly modifying the scripts found at:

http://bugs.php.net/bug.php?id=49084

------------------------------------------------------------------------

[2009-06-19 11:12:34] jani@php.net

If it exists below 5.3, the version must state it! Do NOT touch it 
again.

------------------------------------------------------------------------

[2009-06-19 09:31:34] RQuadling at GMail dot com

Only worry about 5.3+

------------------------------------------------------------------------

[2009-05-08 09:58:57] RQuadling at GMail dot com

I also tried opening the pipes descriptors like ...

$a_Descriptors = array(0 => array('pipe', 'rn'), 1 =>
array('pipe', 
'wn'), 2 => array('pipe', 'wn'));

but no change.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/47918

-- 
Edit this bug report at http://bugs.php.net/?id=47918&edit=1



Thread (14 messages)

« previous php.bugs (#141418) next »