net,dgram: return this from ref and unref methods

Modifies the following methods to return the instance instead
of undefined, to allow for chaining these methods:

- net.Server.ref
- net.Server.unref
- net.Socket.ref
- net.Socket.unref
- dgram.Socket.ref
- dgram.Socket.unref

PR-URL: https://github.com/nodejs/io.js/pull/1768
Reviewed-By: Evan Lucas <evanlucas@me.com>
This commit is contained in:
Roman Reiss 2015-05-22 18:35:57 +02:00
parent 9da168b71f
commit 39dde3222e
5 changed files with 38 additions and 2 deletions

View File

@ -306,8 +306,12 @@ Calling `unref` on a socket will allow the program to exit if this is the only
active socket in the event system. If the socket is already `unref`d calling active socket in the event system. If the socket is already `unref`d calling
`unref` again will have no effect. `unref` again will have no effect.
Returns `socket`.
### socket.ref() ### socket.ref()
Opposite of `unref`, calling `ref` on a previously `unref`d socket will *not* Opposite of `unref`, calling `ref` on a previously `unref`d socket will *not*
let the program exit if it's the only socket left (the default behavior). If let the program exit if it's the only socket left (the default behavior). If
the socket is `ref`d calling `ref` again will have no effect. the socket is `ref`d calling `ref` again will have no effect.
Returns `socket`.

View File

@ -261,12 +261,16 @@ Calling `unref` on a server will allow the program to exit if this is the only
active server in the event system. If the server is already `unref`d calling active server in the event system. If the server is already `unref`d calling
`unref` again will have no effect. `unref` again will have no effect.
Returns `server`.
### server.ref() ### server.ref()
Opposite of `unref`, calling `ref` on a previously `unref`d server will *not* Opposite of `unref`, calling `ref` on a previously `unref`d server will *not*
let the program exit if it's the only server left (the default behavior). If let the program exit if it's the only server left (the default behavior). If
the server is `ref`d calling `ref` again will have no effect. the server is `ref`d calling `ref` again will have no effect.
Returns `server`.
### server.maxConnections ### server.maxConnections
Set this property to reject connections when the server's connection count gets Set this property to reject connections when the server's connection count gets
@ -484,12 +488,16 @@ Calling `unref` on a socket will allow the program to exit if this is the only
active socket in the event system. If the socket is already `unref`d calling active socket in the event system. If the socket is already `unref`d calling
`unref` again will have no effect. `unref` again will have no effect.
Returns `socket`.
### socket.ref() ### socket.ref()
Opposite of `unref`, calling `ref` on a previously `unref`d socket will *not* Opposite of `unref`, calling `ref` on a previously `unref`d socket will *not*
let the program exit if it's the only socket left (the default behavior). If let the program exit if it's the only socket left (the default behavior). If
the socket is `ref`d calling `ref` again will have no effect. the socket is `ref`d calling `ref` again will have no effect.
Returns `socket`.
### socket.remoteAddress ### socket.remoteAddress
The string representation of the remote IP address. For example, The string representation of the remote IP address. For example,

View File

@ -481,10 +481,14 @@ function onMessage(nread, handle, buf, rinfo) {
Socket.prototype.ref = function() { Socket.prototype.ref = function() {
if (this._handle) if (this._handle)
this._handle.ref(); this._handle.ref();
return this;
}; };
Socket.prototype.unref = function() { Socket.prototype.unref = function() {
if (this._handle) if (this._handle)
this._handle.unref(); this._handle.unref();
return this;
}; };

View File

@ -984,20 +984,24 @@ function connectErrorNT(self, err, options) {
Socket.prototype.ref = function() { Socket.prototype.ref = function() {
if (!this._handle) { if (!this._handle) {
this.once('connect', this.ref); this.once('connect', this.ref);
return; return this;
} }
this._handle.ref(); this._handle.ref();
return this;
}; };
Socket.prototype.unref = function() { Socket.prototype.unref = function() {
if (!this._handle) { if (!this._handle) {
this.once('connect', this.unref); this.once('connect', this.unref);
return; return this;
} }
this._handle.unref(); this._handle.unref();
return this;
}; };
@ -1506,6 +1510,8 @@ Server.prototype.ref = function() {
if (this._handle) if (this._handle)
this._handle.ref(); this._handle.ref();
return this;
}; };
Server.prototype.unref = function() { Server.prototype.unref = function() {
@ -1513,6 +1519,8 @@ Server.prototype.unref = function() {
if (this._handle) if (this._handle)
this._handle.unref(); this._handle.unref();
return this;
}; };

View File

@ -0,0 +1,12 @@
'use strict';
var assert = require('assert');
var net = require('net');
var dgram = require('dgram');
var common = require('../common');
assert.ok((new net.Server()).ref() instanceof net.Server);
assert.ok((new net.Server()).unref() instanceof net.Server);
assert.ok((new net.Socket()).ref() instanceof net.Socket);
assert.ok((new net.Socket()).unref() instanceof net.Socket);
assert.ok((new dgram.Socket('udp4')).ref() instanceof dgram.Socket);
assert.ok((new dgram.Socket('udp6')).unref() instanceof dgram.Socket);