php-src/ext
Anatol Belski 0c982798e0 Fixed bug #51800 proc_open on Windows hangs forever
This loop can block for some minutes, theoretically. Practially
however, this is a 99% non issue for a normal use case. This is
required because read() is synchronous. The PHP streams API wants
to fill its internal buffers, therefore it might try to read some
more data than user has demanded. Also, for a case where we want
to read X bytes, but neither enough data nor EOF arrives, read()
will block until it could fill the buffer. If a counterpart station
runs slowly or delivers not all the data at once, read() would
still be waiting. If we quit too early, we possibly could loose
some data from the pipe. Thus it has to emulate the read()
behaviour, but obviously not completely, just to some grade.

Reading big data amount is for sure an issue on any platforms, it
depends on the pipe buffer size, which is controlled by the system.
On Windows, the buffer size seems to be way too small, which causes
buffer congestion and a dead lock. It is essential to read the pipe
descriptors simultaneously and possibly in the same order as the
opposite writes them.

Thus, this will work with smaller buffer data sizes passed through
pipes. As MSDN states, anonymous pipes don't support asynchronous
operations. Neither anonymous pipes do support select() as they are
not SOCKETs but file descriptors. Consequently - bigger data sizes
will need a better solution based on threads. However it is much
more expencive. Maybe a better solution could be exporting a part
of the internal doing as a userspace function which could perform
some kind of lookahead operation on the pipe descriptor.

This is just the first stone, depending on the user feedback we
might go for further improvements in this area.
2014-09-29 16:24:34 +02:00
..
bcmath Bump year 2014-01-03 11:06:16 +08:00
bz2 Merge branch 'PHP-5.4' into PHP-5.5 2014-05-08 02:00:23 -07:00
calendar Bump year 2014-01-03 11:06:16 +08:00
com_dotnet Merge branch 'PHP-5.4' into PHP-5.5 2014-08-12 11:50:55 +02:00
ctype Bump year 2014-01-03 11:06:16 +08:00
curl reflect in the test that GSS-Negotiate is deprecated since libcurl 7.38.0 2014-09-11 23:30:01 +02:00
date Merge branch 'PHP-5.4' into PHP-5.5 2014-09-26 16:27:00 +01:00
dba Bump year 2014-01-03 11:06:16 +08:00
dom Merge branch 'PHP-5.4' into PHP-5.5 2014-08-17 21:33:41 +03:00
enchant Bump year 2014-01-03 11:06:16 +08:00
ereg Merge branch 'PHP-5.4' into PHP-5.5 2014-08-17 15:48:22 +03:00
exif Remove superfluous echos. 2014-06-08 13:50:22 -07:00
fileinfo Merge branch 'PHP-5.4' into PHP-5.5 2014-09-20 16:40:02 -07:00
filter Merge branch 'PHP-5.4' into PHP-5.5 2014-07-02 22:38:27 +02:00
ftp fix unstable test 2014-07-08 15:04:09 -07:00
gd Merge branch 'PHP-5.4' into PHP-5.5 2014-09-16 10:22:34 +02:00
gettext Bump year 2014-01-03 11:06:16 +08:00
gmp Merge branch 'PHP-5.4' into PHP-5.5 2014-03-11 11:51:35 +01:00
hash Fix hash_pbkdf2() with missing $length argument 2014-03-12 14:16:18 +01:00
iconv Bump year 2014-01-03 11:06:16 +08:00
imap Bump year 2014-01-03 11:06:16 +08:00
interbase Merge branch 'PHP-5.4' into PHP-5.5 2014-04-10 17:43:09 +03:00
intl 1.2 is a problematic float to print out 2014-07-14 07:21:10 -07:00
json Merge branch 'PHP-5.4' into PHP-5.5 2014-08-17 15:48:22 +03:00
ldap Merge branch 'PHP-5.4' into PHP-5.5 2014-09-28 12:25:24 -07:00
libxml Merge branch 'PHP-5.4' into PHP-5.5 2014-06-09 07:07:07 +02:00
mbstring Merge branch 'PHP-5.4' into PHP-5.5 2014-08-17 21:33:41 +03:00
mcrypt Bump year 2014-01-03 11:06:16 +08:00
mssql Bump year 2014-01-03 11:06:16 +08:00
mysql Merge branch 'PHP-5.4' into PHP-5.5 2014-06-20 13:57:38 +04:00
mysqli Fix another failing test 2014-08-15 23:26:21 +00:00
mysqlnd fix precision when fetching float through mysqlnd 2014-09-10 19:29:11 +02:00
oci8 Merge branch 'PHP-5.4' into PHP-5.5 2014-02-24 17:02:16 -08:00
odbc Merge branch 'PHP-5.4' into PHP-5.5 2014-07-30 02:34:46 +00:00
opcache Fixed usage after free 2014-07-30 10:39:25 +04:00
openssl Revert xp_ssl.c to the state of 5.4.32 due to regressions 2014-09-26 00:44:24 -07:00
pcntl Bump year 2014-01-03 11:06:16 +08:00
pcre Merge branch 'PHP-5.4' into PHP-5.5 2014-08-17 15:48:22 +03:00
pdo Merge branch 'PHP-5.4' into PHP-5.5 2014-06-16 23:30:44 +03:00
pdo_dblib Bump year 2014-01-03 11:06:16 +08:00
pdo_firebird Merge branch 'PHP-5.4' into PHP-5.5 2014-04-28 12:13:44 +03:00
pdo_mysql Merge branch 'PHP-5.4' into PHP-5.5 2014-06-20 13:57:38 +04:00
pdo_oci Bump year 2014-01-03 11:06:16 +08:00
pdo_odbc Fix #50444: PDO-ODBC changes for 64-bit 2014-05-26 22:17:29 -07:00
pdo_pgsql Merge branch 'PHP-5.4' into PHP-5.5 2014-05-21 18:59:02 +02:00
pdo_sqlite Bump year 2014-01-03 11:06:16 +08:00
pgsql Merge branch 'PHP-5.4' into PHP-5.5 2014-07-01 13:23:11 -07:00
phar Fixed tests affect by local ini 2014-07-09 18:34:40 +08:00
posix Merge branch 'PHP-5.4' into PHP-5.5 2014-04-14 15:45:53 -07:00
pspell Bump year 2014-01-03 11:06:16 +08:00
readline Merge branch 'PHP-5.4' into PHP-5.5 2014-07-24 18:00:06 +02:00
recode Bump year 2014-01-03 11:06:16 +08:00
reflection Fixed bug #68103 Dupplicate entry in Reflection 2014-09-26 08:56:42 +02:00
session Fix bug #67972 (SessionHandler Invalid memory read create_sid()). 2014-09-08 19:25:14 +00:00
shmop Bump year 2014-01-03 11:06:16 +08:00
simplexml Merge branch 'PHP-5.4' into PHP-5.5 2014-08-24 00:09:00 +02:00
skeleton fixed skeleton to produce the normalized ext version macros 2013-10-14 14:18:43 +02:00
snmp Bump year 2014-01-03 11:06:16 +08:00
soap Merge branch 'PHP-5.4' into PHP-5.5 2014-08-17 15:48:22 +03:00
sockets Update copyright year to 2014 2014-06-18 00:12:33 +03:00
spl Merge branch 'PHP-5.4' into PHP-5.5 2014-08-17 21:33:41 +03:00
sqlite3 Fixed bug #66967 Updated the bundled libsqlite to 3.8.4.3 2014-04-11 11:00:10 +02:00
standard Fixed bug #51800 proc_open on Windows hangs forever 2014-09-29 16:24:34 +02:00
sybase_ct Bump year 2014-01-03 11:06:16 +08:00
sysvmsg Bump year 2014-01-03 11:06:16 +08:00
sysvsem Bump year 2014-01-03 11:06:16 +08:00
sysvshm Bump year 2014-01-03 11:06:16 +08:00
tidy Bump year 2014-01-03 11:06:16 +08:00
tokenizer Merge branch 'PHP-5.4' into PHP-5.5 2014-02-14 15:30:00 +02:00
wddx fixed variable corruption under win x64 2014-08-20 15:08:52 +02:00
xml Merge branch 'PHP-5.4' into PHP-5.5 2014-08-24 00:09:00 +02:00
xmlreader Bump year 2014-01-03 11:06:16 +08:00
xmlrpc Bump year 2014-01-03 11:06:16 +08:00
xmlwriter Bump year 2014-01-03 11:06:16 +08:00
xsl Merge branch 'PHP-5.4' into PHP-5.5 2014-04-01 10:12:06 +02:00
zip Bump year 2014-01-03 11:06:16 +08:00
zlib Merge branch 'PHP-5.4' into PHP-5.5 2014-08-21 22:43:25 +02:00
ext_skel Use the right path for the suggested PHP invocation in ext_skel. 2014-05-01 11:22:20 -07:00
ext_skel_win32.php