mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
net: ensure Write/ShutdownWrap references handle
`StreamBase::AfterWrite` is passing handle as an argument to the `afterWrite` function in net.js. Thus GC should not collect the handle and the request separately and assume that they are tied together. With this commit - request will always outlive the StreamBase instance, helping us survive the GC pass. Same applies to the ShutdownWrap instances, they should never be collected after the StreamBase instance. Fix: https://github.com/iojs/io.js/pull/1580 PR-URL: https://github.com/iojs/io.js/pull/1590 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
parent
2a3a1909ab
commit
b4f5898395
@ -201,6 +201,7 @@ function onSocketFinish() {
|
||||
|
||||
var req = new ShutdownWrap();
|
||||
req.oncomplete = afterShutdown;
|
||||
req.handle = this._handle;
|
||||
var err = this._handle.shutdown(req);
|
||||
|
||||
if (err)
|
||||
@ -627,6 +628,7 @@ Socket.prototype._writeGeneric = function(writev, data, encoding, cb) {
|
||||
}
|
||||
|
||||
var req = new WriteWrap();
|
||||
req.handle = this._handle;
|
||||
req.oncomplete = afterWrite;
|
||||
req.async = false;
|
||||
var err;
|
||||
|
Loading…
Reference in New Issue
Block a user