ID: 48684
Updated by: [email protected]
Reported By: ryan at ryanmills dot net
Status: Open
Bug Type: Streams related
Operating System: win32 only - Vista X64
PHP Version: 5.2.10
New Comment:
And where is the patch then?
Previous Comments:
------------------------------------------------------------------------
[2009-12-11 22:43:54] spam at helper3000 dot net
Would also just like to add that after a mere day, a busy friend I know
managed to fix PHP 5.2 and apply the patch to 5.3, it now works
perfectly using his modified build.
UNDER A DAY. And this issue has been continuing in PHP for at least 7
years...
------------------------------------------------------------------------
[2009-12-08 20:59:57] spam at helper3000 dot net
Problem experianced using 5.3.1 in both thread and non-thread safe
binaries on windows XP SP2.
I too have read that it is an ongoing problem; it should have been
fixed many years ago.
------------------------------------------------------------------------
[2009-10-20 23:32:06] ron at rongage dot org
Actually, it still doesn't work on Linux either (5.2.11).
Yes, the actual fread is non-blocking. However, if you press any key,
it is NOT registered so you can't react to keystrokes.
The code:
<?php
stream_set_blocking(STDIN,FALSE);
while (1)
{
$x = fread(STDIN,1);
var_dump($x);
if ($x != "")
exit;
}
As expected with non-blocking, the fread doesn't hold up execution of
the program. However, if a key is hit (something comes in on STDIN),
the program should immediately exit. It doesn't - it just keeps on
going, and going, and going....
Ron
------------------------------------------------------------------------
[2009-06-25 22:43:30] ryan at ryanmills dot net
tested on linux and 32bit windows. Linux works, windows does not.
------------------------------------------------------------------------
[2009-06-25 04:49:01] ryan at ryanmills dot net
Description:
------------
I have read a number of past bug reports from 2002 to just a month or
two ago. Under windows it does not seem that you can make STDIN non
blocking.
Follow code from: http://bugs.php.net/bug.php?id=47893&edit=2
Tested on 5.2.9-2 and 5.2.10
Notes say it was fixed in CVS so I assume 5.2.10 would have had the
fix.
*NOTE php.ini changes
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 0 ; Maximum execution time of each script, in
seconds
max_input_time = 0 ; Maximum amount of time each script may spend
parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 512M ; Maximum amount of memory a script may
consume (128MB)
Reproduce code:
---------------
<?php
stream_set_blocking(STDIN, FALSE);
while (1) {
var_dump(fread(STDIN,1));
echo "\n";;
}
?>
Expected result:
----------------
A never-ending sequence of var_dumps of either an empty string or a
typed character
Actual result:
--------------
stuck waiting for the user to press enter.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48684&edit=1