worker: only unref port for stdin if we ref’ed it before by addaleax · Pull Request #28153 · nodejs/node
We set the `kStartedReading` flag from `_read()` for Worker stdio,
and then `ref()` the port.
However, the `.on('end')` handler is also attached when `._read()`
is not called, e.g. when `process.stdin` inside a Worker is prematurely
ended because stdin was not enabled by the parent thread.
In that case, we should not call `.unref()` for stdin if we did not
also call `.ref()` for it before.
Fixes: nodejs#28144
addaleax
added
the
author ready
label
Jun 19, 2019Trott pushed a commit to Trott/io.js that referenced this pull request
Jun 20, 2019We set the `kStartedReading` flag from `_read()` for Worker stdio,
and then `ref()` the port.
However, the `.on('end')` handler is also attached when `._read()`
is not called, e.g. when `process.stdin` inside a Worker is prematurely
ended because stdin was not enabled by the parent thread.
In that case, we should not call `.unref()` for stdin if we did not
also call `.ref()` for it before.
Fixes: nodejs#28144
PR-URL: nodejs#28153
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
targos pushed a commit that referenced this pull request
Jul 2, 2019We set the `kStartedReading` flag from `_read()` for Worker stdio,
and then `ref()` the port.
However, the `.on('end')` handler is also attached when `._read()`
is not called, e.g. when `process.stdin` inside a Worker is prematurely
ended because stdin was not enabled by the parent thread.
In that case, we should not call `.unref()` for stdin if we did not
also call `.ref()` for it before.
Fixes: #28144
PR-URL: #28153
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
targos added a commit that referenced this pull request
Jul 2, 2019Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.0. #28449
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
PR-URL: #28508
targos added a commit that referenced this pull request
Jul 2, 2019Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.0. #28449
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
* meta:
* Added Jiawen Geng (https://github.com/gengjiawen) to collaborators.
#28322
PR-URL: #28508
targos added a commit that referenced this pull request
Jul 2, 2019Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.1. #28449,
#28511
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
* meta:
* Added Jiawen Geng (https://github.com/gengjiawen) to collaborators.
#28322
PR-URL: #28508
targos added a commit that referenced this pull request
Jul 3, 2019Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.1. #28449,
#28511
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
* meta:
* Added Jiawen Geng (https://github.com/gengjiawen) to collaborators.
#28322
PR-URL: #28508
This was referenced
Jul 3, 2019
naz
mentioned this pull request
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters