- May 16, 2013
-
-
Ben Noordhuis authored
net.connect() and net.createConnection() now emit a 'lookup' event after resolving the hostname but before connecting. Fixes #5418.
-
Ben Noordhuis authored
Please msbuild, update the header list.
-
Ben Noordhuis authored
-
- May 15, 2013
-
-
Bert Belder authored
-
Timothy J Fontaine authored
getServers returns an array of ips that are currently being used for resolution setServers takes an array of ips that are to be used for resolution, this will throw if there's invalid input but preserve the original configuration
-
- May 14, 2013
-
-
Ben Noordhuis authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
* uv: Upgrade to 0.11.2 * V8: Upgrade to 3.19.0 * npm: Upgrade to 1.2.21 * build: Makefile should respect configure --prefix (Timothy J Fontaine) * cluster: use round-robin load balancing (Ben Noordhuis) * debugger, cluster: each worker has new debug port (Miroslav Bajtoš) * debugger: `restart` with custom debug port (Miroslav Bajtoš) * debugger: breakpoints in scripts not loaded yet (Miroslav Bajtoš) * event: EventEmitter#setMaxListeners() returns this (Sam Roberts) * events: add EventEmitter.defaultMaxListeners (Ben Noordhuis) * install: Support $(PREFIX) install target directory prefix (Olof Johansson) * os: Include netmask in os.networkInterfaces() (Ben Kelly) * path: add path.isAbsolute(path) (Ryan Doenges) * stream: Guarantee ordering of 'finish' event (isaacs) * streams: introduce .cork/.uncork/._writev (Fedor Indutny) * vm: add support for timeout argument (Andrew Paprocki)
-
isaacs authored
-
Ben Noordhuis authored
Empirical evidence suggests that OS-level load balancing (that is, having multiple processes listen on a socket and have the operating system wake up one when a connection comes in) produces skewed load distributions on Linux, Solaris and possibly other operating systems. The observed behavior is that a fraction of the listening processes receive the majority of the connections. From the perspective of the operating system, that somewhat makes sense: a task switch is expensive, to be avoided whenever possible. That's why the operating system likes to give preferential treatment to a few processes, because it reduces the number of switches. However, that rather subverts the purpose of the cluster module, which is to distribute the load as evenly as possible. That's why this commit adds (and defaults to) round-robin support, meaning that the master process accepts connections and distributes them to the workers in a round-robin fashion, effectively bypassing the operating system. Round-robin is currently disabled on Windows due to how IOCP is wired up. It works and you can select it manually but it probably results in a heavy performance hit. Fixes #4435.
-
Bert Belder authored
Conflicts: tools/test.py
-
Ben Noordhuis authored
Commit 9352c198 ("child_process: don't emit same handle twice") trades one bug for another. Before said commit, a handle was sometimes delivered with messages it didn't belong to. The bug fix introduced another bug that needs some explaining. On UNIX systems, handles are basically file descriptors that are passed around with the sendmsg() and recvmsg() system calls, using auxiliary data (SCM_RIGHTS) as the transport. node.js and libuv depend on the fact that none of the supported systems ever emit more than one SCM_RIGHTS message from a recvmsg() syscall. That assumption is something we should probably address someday for the sake of portability but that's a separate discussion. So, SCM_RIGHTS messages are never coalesced. SCM_RIGHTS and normal messages however _are_ coalesced. That is, recvmsg() might return this: recvmsg(); // { "message-with-fd", "message", "message" } The operating system implicitly breaks pending messages along SCM_RIGHTS boundaries. Most Unices break before such messages but Linux also breaks _after_ them. When the sender looks like this: sendmsg("message"); sendmsg("message-with-fd"); sendmsg("message"); Then on most Unices the receiver sees messages arriving like this: recvmsg(); // { "message" } recvmsg(); // { "message-with-fd", "message" } The bug fix in commit 9352c198 assumes this behavior. On Linux however, those messages can also come in like this: recvmsg(); // { "message", "message-with-fd" } recvmsg(); // { "message" } In other words, it's incorrect to assume that the file descriptor is always attached to the first message. This commit makes node wise up. Fixes #5330.
-
- May 13, 2013
-
-
Nick Sullivan authored
util.log will fail on input that does not support .toString(). Have it use console.log() instead. Includes tests for hairy data types. Fixes #5349.
-
Ben Noordhuis authored
-
Ben Noordhuis authored
-
Ben Noordhuis authored
V8 3.19.0 deprecates v8::String::MayContainNonAscii(). It always returns true so there is not much point in keeping the call site around.
-
Ben Noordhuis authored
-
Ben Noordhuis authored
-
- May 11, 2013
- May 10, 2013
-
-
isaacs authored
-
isaacs authored
-
isaacs authored
This adds proper support for the following situation: w.cork(); w.write(...); w.cork(); w.write(...); w.uncork(); w.write(...); w.uncork(); This is relevant when you have a function (as we do in HTTP) that wants to use cork, but in some cases, want to have a cork/uncork *around* that function, without losing the benefits of writev. -
isaacs authored
In synchronous Writable streams (where the _write cb is called on the current tick), the 'finish' event (and thus the end() callback) can in some cases be called before all the write() callbacks are called. Use a counter, and have stream.Transform rely on the 'prefinish' event instead of the 'finish' event. This has zero effect on most streams, but it corrects an edge case and makes it perform more deterministically, which is a Good Thing.
-
- May 09, 2013
-
-
Timothy J Fontaine authored
client sockets no longer emit 'connect' event inside the requestListener, update test-net-many-clients to reflect that
-
Robert Kowalski authored
Fixes #5255.
-
Ben Kelly authored
re #3765 and #5432 fixes #4743
-
Miroslav Bajtoš authored
uv_async_t handles for dispatching of debug messages and emitting NODE_DEBUG_ENABLED used to be initialized every time node::EnableDebug() was called, which happened every time user sends a SIGUSR1. Now they are initialized only once from node::Init() during application start.
-
Miroslav Bajtoš authored
Implement support for debugging cluster workers. Each worker process is assigned a new debug port in an increasing sequence. I.e. when master process uses port 5858, then worker 1 uses port 5859, worker 2 uses port 5860, and so on. Introduce new command-line parameter '--debug-port=' which sets debug_port but does not start debugger. This option works for all node processes, it is not specific to cluster workers. Fixes joyent/node#5318.
-
Daniel Moore authored
This makes Readable.wrap behave properly when the wrapped stream ends before emitting any data events.
-
Daniel Moore authored
Added a check to see if the stream is in objectMode before deciding whether to include or exclude data from an old-style wrapped stream.
-
- May 08, 2013
-
-
Timothy J Fontaine authored
-
Timothy J Fontaine authored
-
Brian White authored
-
Trevor Norris authored
WriteBuffer was changed in the cork/uncork implementation (60ed2c54). The unused argument has been removed.
-
Timothy J Fontaine authored
-
Timothy J Fontaine authored
-
- May 07, 2013
-
-
Timothy J Fontaine authored
-