diff --git a/UPGRADING b/UPGRADING index 5f92921d041..6ae9b52e993 100644 --- a/UPGRADING +++ b/UPGRADING @@ -606,15 +606,25 @@ Other unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]); - proc_open(): - The maximum number of pipes used by proc_open() was previously limited by + . The maximum number of pipes used by proc_open() was previously limited by hardcoded value of 16. This limit is now removed and the number of pipes is effectively limited by the amount of memory available to PHP. + . New Windows only configuration option "blocking_pipes" can be used to + force blocking reads on child process pipes. This covers several + edge cases in CLI usage however can lead to dead locks. Also, this + correlates with the new stream context options for pipes. - array_column(): The function now supports an array of objects as well as two-dimensional arrays. Only public properties are considered, and objects that make use of __get() for dynamic properties must also implement __isset(). +- stream_context_create() + It accepts now a Windows only configuration + array("pipe" => array("blocking" => )) which forces blocking reads + on pipes. This option should be used carefully because due to the + platform restrictions dead locks on pipe buffers are possible. + ======================================== 6. New Functions ======================================== diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS index 9700af595b7..b7c69cc7a2b 100644 --- a/UPGRADING.INTERNALS +++ b/UPGRADING.INTERNALS @@ -18,6 +18,7 @@ PHP 7.0 INTERNALS UPGRADE NOTES p. TSRM changes q. gc_collect_cycles() is now hookable r. PDO uses size_t for lengths + u. Streams changes 2. Build system changes a. Unix build system changes @@ -210,6 +211,10 @@ changes. See: https://wiki.php.net/phpng-upgrading Instead of reallocation and copying string on each ZEND_ADD_STRING/VAR/CAHR, collect all the strings and then allocate and construct the resulting string once. + u. Streams changes + - It is possible to do blocking reads on Windows pipes. It can be done either + using context stream option PHP_STREAM_OPTION_PIPE_BLOCKING or + adding STREAM_USE_BLOCKING_PIPE when opening the stream. ======================== 2. Build system changes