* stream: Allow strings in Readable.push/unshift (isaacs) * stream: Remove bufferSize option (isaacs) * stream: Increase highWaterMark on large reads (isaacs) * stream: _write: takes an encoding argument (isaacs) * stream: _transform: remove no output() method, provide encoding (isaacs) * stream: Don't require read(0) to emit 'readable' event (isaacs) * node: Add --throw-deprecation (isaacs) * http: fix multiple timeout events (Eugene Girshov) * http: More useful setTimeout API on server (isaacs) * net: use close callback, not process.nextTick (Ben Noordhuis) * net: Provide better error when writing after FIN (isaacs) * dns: Support NAPTR queries (Pavel Lang) * dns: fix ReferenceError in resolve() error path (Xidorn Quan) * child_process: handle ENOENT correctly on Windows (Scott Blomquist) * cluster: Rename destroy() to kill(signal=SIGTERM) (isaacs) * build: define nightly tag external to build system (Timothy J Fontaine) * build: make msi build work when spaces are present in the path (Bert Belder) * build: fix msi build issue with WiX 3.7/3.8 (Raymond Feng) * repl: make compatible with domains (Dave Olszewski) * events: Code cleanup and performance improvements (Trevor Norris)
This adds the following to HTTP: * server.setTimeout(msecs, callback) Sets all new connections to time out after the specified time, at which point it emits 'timeout' on the server, passing the socket as an argument. In this way, timeouts can be handled in one place consistently. * req.setTimeout(), res.setTimeout() Essentially an alias to req/res.socket.setTimeout(), but without having to delve into a "buried" object. Adds a listener on the req/res object, but not on the socket. * server.timeout Number of milliseconds before incoming connections time out. (Default=1000*60*2, as before.) Furthermore, if the user sets up their own timeout listener on either the server, the request, or the response, then the default behavior (destroying the socket) is suppressed. Fix #3460
This will run the benchmarks the number of times specified by NODE_BENCH_RUNS, to attempt to reduce variability. If the number of runs is high enough, it'll also throw out the top and bottom quartiles, since that's where the outliers will be. It's not very fancy statistics-fu, but it's better than nothing. Also, linted this file. It had tabs in it. TABS!
This prevents excessively raising the buffer level in tiny increments in pathological cases.
Now that highWaterMark increases when there are large reads, this greatly reduces the number of calls necessary to _read(size), assuming that _read actually respects the size argument.
It's not actually necessary for backwards compatibility, isn't used anywhere, and isn't even tested. Better to just remove it.
If the consumer of a Readable is asking for N bytes, and N > hwm, then clearly we have set the hwm to low, and ought to increase it. Fix #4931
Extremely handy when tracking down a flood of recursive nextTick warnings.
Fixed up slightly by @isaacs so as not to miss 'timeout' events in some cases.
Don't emit the 'close' event with process.nextTick. Closing a handle is an operation that usually *but not always* completes on the next tick of the event loop, hence using process.nextTick is not reliable. Use a proper handle close callback and emit the 'close' event from inside the callback. Update tests that depend on the intricacies of the old model. Fixes #3459.
Prep work for a follow-up commit that adds support for close callbacks.
They were previously removed in a90bc78.
This makes test-internet pass
This vastly reduces the overhead of decodeStrings:false streams, such as net and http.
Just use stream.push(outputChunk) instead.
1. Get rid of unnecessary 'finishing' flag 2. Dont check both ending and ended. Extraneous. Also: Remove extraneous 'finishing' flag, and don't check both 'ending' and 'ended', since checking just 'ending' is sufficient.
This is helpful in tracking down bailouts and deopts in Stream classes, without triggering one from the string write in console.log
This properly sets the `_maxListeners` property, which fixes the max listener warning. Closes #4924.
There are no unsafe structured exception handlers in object files generated from hand-crafted assembly - because they contain no exception handlers at all.
This commit fixes a bug where the cluster module fails to propagate EADDRINUSE errors. When a worker starts a (net, http) server, it requests the listen socket from its master who then creates and binds the socket. Now, OS X and Windows don't always signal EADDRINUSE from bind() but instead defer the error until a later syscall. libuv mimics this behaviour to provide consistent behaviour across platforms but that means the worker could end up with a socket that is not actually bound to the requested addresss. That's why the worker now checks if the socket is bound, raising EADDRINUSE if that's not the case. Fixes #2721.
`removeAllListeners` is removing events from end to start. Therefore it spends O(n^2) time, since `removeListener` is searching from start to end.