Hi Dmitry, Thanks for the review :)
Greetings Anatol > -----Original Message----- > From: Dmitry Stogov [mailto:dmi...@zend.com] > Sent: Tuesday, June 30, 2015 9:45 PM > To: Anatol Belski > Cc: PHP Internals; Pierre Joye; Kalle Sommer Nielsen; Xinchen Hui; Nikita > Popov > Subject: [PHP-DEV] Re: Fixes for #69900 and #69963 > > Hi Anatol, > > I don't see any problems committing this. > > Thanks. Dmitry. > > > On Tue, Jun 30, 2015 at 9:41 PM, Anatol Belski <anatol....@belski.net> > wrote: > > > Hi, > > > > regarding the mentioned tickets I've prepared a patch > > https://github.com/php/php-src/compare/master...weltling:pipe_blocking > > _win > > . > > Anonymous pipes on Windows > > > > - don't support asynchronous IO > > - don't support select() > > - have buffer size of 4096 bytes (or even less) which is much easier > > overflown that a buffer of 64kb often to be seen on Unix > > > > These issues was addressed last year, but the tickets mentioned report > > about the issues still persisting in PHP5/7. While it's likely a no go > > for PHP5, I would like to push this patch into PHP7. Particularly what > > it does is allowing the blocking read() again for the edge cases > > reported in the listed tickets. It is done adding a context option and > > a new win only option for proc_open. Just to illustrate a few - > > > > ==== SNIPPET ==== > > /* here proc_open() will do a blocking read on the child process*/ > > $process = proc_open(PHP_BINARY.' -f ' . $fl, $descriptorspec, $pipes, > > NULL, NULL, array("blocking_pipes" => true)); ==== END SNIPPET ==== > > > > ==== SNIPPET ==== > > $in = fopen("php://stdin", "rb", false, stream_context_create(array("pipe" > > => array("blocking" => true)))); > > +while(!feof($in)){ /* here feof() will do a blocking read on the pipe > > +*/ > > ........................ > > ==== END SNIPPET ==== > > > > The only drawback on this is that blocking reads on pipes are likely > > to cause pipe buffer overflows and thus deadlock, like it was before. > > Though, when working with them carefully, this could be avoided and > > would bring improvements with several edge cases, almost when working > > on CLI. Anyway this patch brings no difference to PHP5 while addressing > > those > edge cases. > > > > I would like to ask for review here. I've also made a minimal build > > with this patch http://windows.php.net/downloads/snaps/ostc/69900/ for > > those interested to test. If there are no strong objections, it should > > be merged soon. > > > > Thanks > > > > Anatol > > > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php