On Thu, Nov 8, 2012 at 12:04 AM, Isaac Schlueter <[email protected]> wrote:
> Node uses threads for file system IO and for some slow CPU-intensive
> operations, and for system calls that are not available
> asynchronously, and for spawning child processes (since you can't
> actually do that without a fork call.)
>
> It does *not* use threads for async network IO, because it's
> unnecessary, and it certainly does not spawn a thread for each request
> to an HTTP server, or for each outbound HTTP request it makes.

Sorry Isaac, I'm afraid I have to amend that a little. :-)

* Child processes are spawned synchronously.  (But afterwards, process
management is event-driven.)  That may change if it becomes an issue
but that hasn't been the case so far.

* While HTTP traffic is event-driven, the initial DNS lookup is done
from inside the thread pool.  That's because we use getaddrinfo(3)
instead of c-ares, mostly because the latter doesn't support things
like mDNS (think Bonjour, Avahi, etc.).  I may switch it to
getaddrinfo_a(3) on Linux someday but other platforms will keep on
using the thread pool.

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to