Skip to content
This repository

nested setTimeout calls can lead to premature process exit #2515

Closed
csosborn opened this Issue January 11, 2012 · 25 comments

8 participants

Chris Osborn Ben Noordhuis David Ellis Ben Alman Moritz Peters Bjorn Stromberg Avi Deitcher Bert Belder
Chris Osborn

Certain combinations of nested setTimeout and clearTimeout calls lead to a the node process exiting improperly. The exit is clean, with the process object emitting an "exit" event and status code of 0, but it nevertheless happens too early. Additional background is at https://groups.google.com/forum/#!topic/nodejs/w1wBjg61rQg.

Please see https://gist.github.com/1590128 for code that will reproduce this behavior.

Ben Noordhuis

Confirmed. Tentative fix in bnoordhuis/libuv@1c527d2.

David Ellis

This is not a Node problem.

Change the timeouts to 20 and 50 instead of 2 and 5 and you'll see it work.

The issue is that the setTimeout function only guarantees down to 4ms intervals.

The events are happening out of the specified order and is therefore producing undefined behavior. I'd have to dig through the guts of the V8 engine to see what's happening within the queue, but my guess is that the clearInterval, since it is happening within an event itself, clears a necessary interval to continue this godforsaken loop.

David Ellis

To be a bit more helpful, for whatever it is you're trying to do, you probably want to use process.nextTick, instead.

Ben Noordhuis

This is not a Node problem.

No, but it is a libev/libuv issue. One symptom is that the event loop's reference count sometimes drops below zero.

David Ellis

Then this may well have exposed a bug in the library. I don't think it changes the fact that the example code could be executed out of expected order, however.

It's a problem with any setTimeout; if the callback is calculating the first 5 million digits of pi the second callback isn't going to fire until the first has finished, anyways.

Chris Osborn

I chose those particular timeout values to maximize the chance of the bug occurring quickly and repeatably, purely for the sake of easy debugging. When I first encountered this problem, it was with timeouts closer to 10ms and 5000ms, respectively. It happens then too, but infrequently enough that it's harder to demonstrate.

The exact timing isn't important, but if the events are happening out the specified order, then I think that's a Node bug. While I'm perfectly happy to see God forsake this loop, Node should not. I'm using it for a good purpose: I need to time out unit tests that fail to exit cleanly, but I don't want to do so using a single setTimeout because then it becomes much harder to debug the code under test. A single timeout is likely to expire and kill the test while I'm still stepping through in the debugger, whereas a five-second fuse constructed of 500 consecutive 10ms setTimeouts does not exhibit that problem. When the event loop pauses, so does the fuse.

Ben Alman

I'm experiencing what I believe to be the exact same issue. At no point should this code exit, since the interval is never cleared, but it does. The setTimeout and clearTimeout should in no way impact the setInterval, but they somehow do.

Note that while I initially had both delays set to much lower values than 100, using node v0.6.7 on OS X 10.7, this much higher delay value doesn't prevent the process from exiting early. I typically see the console.log between 3-5 times before it exits.

var i = 0;
var id;
// Create a never-ending interval. This should guarantee that the node process
// never exits, since it's never cleared.
setInterval(function() {
  console.log(++i);
  // Clear timeout if one exists.
  if (id) { clearTimeout(id); }
  // Create a timeout.
  id = setTimeout(function() {}, 100);
}, 100);

output:

[cowboy@CowBook:~]
[07:07:11] $ node test.js 
1
2
3
4

[cowboy@CowBook:~]
[07:07:11] $ 
Ben Alman

FWIW, I don't know if this has any bearing on the issue, but in Chromium 117892 console, the interval goes forever.

Moritz Peters

Works in v0.4.12 but seems broken since v0.6.0

Bjorn Stromberg

I just ran into the same problem, it only happens on linux for me.

I created a setInterval / setTimeout benchmark (https://gist.github.com/1668261) and it won't complete on either of my two linux boxes, but completes fine on three of my windows boxes.

Is there an ETA to this fix going in? v0.6.8 was released 5 days ago and did not include this fix. I also tried running 0.7.2-pre and it still fails.

Ben Noordhuis

@bjornstar: bnoordhuis/libuv@1c527d2 seems to have fixed the issue but I haven't been able to come up with a good regression test yet.

Bjorn Stromberg

@bnoordhuis: I created a test for this and submitted a pull request (#2644)

Bjorn Stromberg

Any progress on this issue? Is there a problem with the pull request?

Avi Deitcher

Yep, this one tripped me up to with jsdom and zombie. I just use TJ's "n" to now run that code under

n use 0.4.10 ./app.js

but that is kind of backwards. Looking forward to the fix here.

Bert Belder
Collaborator

Doesn't happen in windows, so @bnoordhuis's theory that it is an libuv-unix issue seems likely.

Bjorn Stromberg

Still broken on v0.6.11, when is this fix going in? clearTimeout is unsafe on linux because it will destroy all your timers, even those created by setInterval.

Ben Noordhuis bnoordhuis referenced this issue from a commit in joyent/libuv January 11, 2012
Ben Noordhuis unix: don't rely on libev to track timer state
An obscure libev bug sometimes makes it miss state changes. Keep track of the
state ourselves.

Fixes joyent/node#2515.
2f886c8
Ben Noordhuis

The fix landed in master in af7960b. I'm debating the wisdom of back-porting it to v0.6.x. Can you guys test master and report your findings?

Chris Osborn

I just built from master (node reports 0.7.5-pre) and the behavior doesn't appear to have changed. Both my original reproducer and cowboy's much simpler code still exit too soon, just as in the v0.6 series. Both work fine in the v0.4 series.

Ben Noordhuis

I just built from master (node reports 0.7.5-pre)

That's not the current master, you're a release behind. FWIW, the test cases are passing for me with bab59f3.

Chris Osborn

You're right, I must have failed to to pull newer commits before checking out master. I tried again with 0.7.6-pre and all appears to be well; both test programs work properly. Thank you!

My sense is that this is worth backporting, but I have no clear idea of the risks. I can work around the problem until the stable v0.8 release arrives, but I'm not sure about other people.

Ben Noordhuis bnoordhuis referenced this issue from a commit in joyent/libuv January 11, 2012
Ben Noordhuis unix: don't rely on libev to track timer state
An obscure libev bug sometimes makes it miss state changes. Keep track of the
state ourselves.

Fixes joyent/node#2515.
44c9f63
Ben Noordhuis bnoordhuis closed this March 01, 2012
Ben Noordhuis

The fix has been back-ported in 3aa2fd3, it'll be part of the next v0.6 release.

Avi Deitcher

Hats off!

Bjorn Stromberg

Thanks @bnoordhuis I'll check back on this when I return from my trip.

Isaac Z. Schlueter isaacs referenced this issue from a commit March 02, 2012
Commit has since been removed from the repository and is no longer available.
Isaac Z. Schlueter isaacs referenced this issue from a commit March 02, 2012
Commit has since been removed from the repository and is no longer available.
Isaac Z. Schlueter isaacs referenced this issue from a commit March 02, 2012
Commit has since been removed from the repository and is no longer available.
Isaac Z. Schlueter isaacs referenced this issue from a commit March 02, 2012
Commit has since been removed from the repository and is no longer available.
Isaac Z. Schlueter isaacs referenced this issue from a commit in isaacs/node March 02, 2012
Isaac Z. Schlueter 2012.03.02 Version 0.6.12 (stable)
* Upgrade V8 to 3.6.6.24

* dtrace ustack helper improvements (Dave Pacheco)

* API Documentation refactor (isaacs)

* #2827 net: fix race write() before and after connect() (koichik)

* #2554 #2567 throw if fs args for 'start' or 'end' are strings (AJ ONeal)

* punycode: Update to v1.0.0 (Mathias Bynens)

* Make a fat binary for the OS X pkg (isaacs)

* Fix hang on accessing process.stdin (isaacs)

* repl: make tab completion work on non-objects (Nathan Rajlich)

* Fix fs.watch on OS X (Ben Noordhuis)

* Fix #2515 nested setTimeouts cause premature process exit (Ben Noordhuis)

* windows: fix time conversion in stat (Igor Zinkovsky)

* windows: fs: handle EOF in read (Brandon Philips)

* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)

* Upgrade npm to 1.1.4 (isaacs)
  - windows fixes
  - Bundle nested bundleDependencies properly
  - install: support --save with url install targets
  - shrinkwrap: behave properly with url-installed modules
  - support installing uncompressed tars or single file modules from urls etc.
  - don't run make clean on rebuild
  - support HTTPS-over-HTTP proxy tunneling
48a2d34
Bjorn Stromberg

Confirming that this is fixed in v0.6.12, thanks Ben!

Avi Deitcher

Yep, just used TJ's n to install 0.6.12, and ran tests in 0.6.10 (issue) and 0.6.12 (no problems).

Thanks, Ben!

Joe Cheng jcheng5 referenced this issue from a commit in rstudio/httpuv August 12, 2013
Joe Cheng Merge latest stable libuv
Squashed commit of the following:

commit d84acc65a7e48f41e2bc2fea38ed473e4a051d18
Merge: 47fd23f 381312e
Author: Joe Cheng <joe@rstudio.org>
Date:   Mon Aug 12 09:46:05 2013 -0700

    Merge tag 'v0.10.13'

    2013.07.26, Version 0.10.13 (Stable)

    Changes since version 0.10.12:

    * unix, windows: fix uv_fs_chown() function prototype (Ben Noordhuis)

commit 381312e1fe6fecbabc943ccd56f0e7d114b3d064
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Thu Jul 25 10:31:28 2013 -0700

    2013.07.26, Version 0.10.13 (Stable)

    Changes since version 0.10.12:

    * unix, windows: fix uv_fs_chown() function prototype (Ben Noordhuis)

commit d779eb53d506d40fbe7903da7b914a5bbd588954
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jul 23 13:14:44 2013 +0200

    unix, windows: fix uv_fs_chown() function prototype

    Before this commit, uv_fs_chown() and uv_fs_fchown() took the uid and
    gid as signed integers which is wrong because uid_t and gid_t are
    unsigned on most all platforms and IDs that don't fit in a signed
    integer do exist.

    This is not an ABI change because the size of the uid and gid arguments
    do not change, only their sign.

    On Windows, uv_uid_t and uv_gid_t are typedef'd as unsigned char for
    reasons that are unclear. It doesn't matter: they get cast to ints when
    used as function arguments. The arguments themselves are unused.

    Partial fix for joyent/node#5890.

commit 3b4e0a216fb4093fa9f6e5d3c9039b5f1d30820b
Author: isaacs <i@izs.me>
Date:   Tue Jul 9 13:18:53 2013 -0700

    Now working on v0.10.13

commit 58a46221bba726746887a661a9f36fe9ff204209
Author: isaacs <i@izs.me>
Date:   Tue Jul 9 13:18:50 2013 -0700

    2013.07.10, Version 0.10.12 (Stable)

    Changes since version 0.10.11:

    * linux: add support for MIPS (Andrei Sedoi)

    * windows: uv_spawn shouldn't reject reparse points (Bert Belder)

    * windows: use WSAGetLastError(), not errno (Ben Noordhuis)

    * build: darwin: disable -fstrict-aliasing warnings (Ben Noordhuis)

    * build: `all` now builds static and dynamic lib (Ben Noordhuis)

    * unix: fix build when !defined(PTHREAD_MUTEX_ERRORCHECK) (Ben
      Noordhuis)

commit 37d0209c8911c80115bb0c58b248c7e10bb541a9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jul 5 12:04:43 2013 +0200

    unix: fix build when !defined(PTHREAD_MUTEX_ERRORCHECK)

    Ancient versions of glibc (<= 2.3.1) don't have error-checking mutexes.

commit 88a2c7ff209935d736f02e79b3369f2e7b646bb8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 26 17:13:26 2013 +0200

    build: `all` now builds static and dynamic lib

    The `make all` target now builds both libuv.a and libuv.{so,dylib}
    rather than just libuv.a.

commit 5841852703c02e46d7220f1eb8d89bb8414d7cf3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 26 13:02:39 2013 +0200

    test: add 'start timer from check handle' test

    Check that a timer that is started from a check handle gets picked up
    correctly, i.e. that it influences the timeout used in the next tick
    of the event loop.

commit 488b43ecc5a79143d0697e5e49d834c86c7c9894
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 26 13:26:45 2013 +0200

    test: fix signed/unsigned compiler warning

commit a0bc4cca74be7de2a540439920c8f15d0a671b74
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 26 13:06:26 2013 +0200

    build: darwin: disable -fstrict-aliasing warnings

    gcc 4.2.1 as shipped with Xcode complains incessantly about aliasing
    warnings, which, while technically true, disregards the fact that the
    aliased types have the same layout in memory. Squelch the warnings.

commit c8c775bd9739e0c9562b925ec482a378b50f97c2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 26 01:03:36 2013 +0200

    windows: use WSAGetLastError(), not errno

    setsockopt() doesn't touch errno on failure. Use WSAGetLastError()
    instead.

    This is a back-port of commit 30a8b44 from the master branch.

commit 495d1a09fb863354e5de1c6ab4547be3672ace00
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Jun 19 00:14:58 2013 +0200

    windows: uv_spawn shouldn't reject reparse points

    This fixes an issue where uv_spawn would not try to run a reparse point,
    and continue to scan the PATH instead. Effectively, it was impossible to
    spawn a symlinked binary. This commit fixes that.

    Also see #748

commit 6607e702539f0affa2d1b2926d4e69a1e032c242
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jun 18 23:50:31 2013 +0200

    test: open stdout fd in write-only mode

    Fixes #771.

commit 5096f1e0961896998c4185db866c53a8a8636fab
Author: Andrei Sedoi <bsnote@gmail.com>
Date:   Thu Jun 13 23:23:42 2013 +0300

    linux: add support for MIPS

commit 72e440d7e193123c0359fa12a7fabab15d7d9f51
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 12 21:52:05 2013 +0200

    Now working on v0.10.12

commit c3b75406a66a10222a589cb173e8f469e9665c7e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 12 21:52:01 2013 +0200

    2013.06.13, Version 0.10.11 (Stable)

    Changes since version 0.10.10:

    * unix: unconditionally stop handle on close (Ben Noordhuis)

    * freebsd: don't enable dtrace if it's not available (Brian White)

    * build: make HAVE_DTRACE=0 should disable dtrace (Timothy J. Fontaine)

    * unix: remove overzealous assert (Ben Noordhuis)

    * unix: clear UV_STREAM_SHUTTING after shutdown() (Ben Noordhuis)

    * unix: fix busy loop, write if POLLERR or POLLHUP (Ben Noordhuis)

commit 12210fe578623995d13cc5126427c1c67de4b6e0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 8 03:20:29 2013 +0200

    unix: fix busy loop, write if POLLERR or POLLHUP

    This fixes a busy loop by working around a quirk with Linux kernels
    <= 2.6.32 where an EPIPE or ECONNRESET error on a file descriptor that
    is polled for EPOLLOUT but not EPOLLIN gets reported by epoll_wait() as
    just EPOLLERR|EPOLLHUP, like this:

      epoll_wait(5, {{EPOLLERR|EPOLLHUP, {u32=12, u64=12}}}, 1024, 433) = 1

    Before this commit, libuv called uv__read() which attempts to read from
    the file descriptor.  With newer kernels and on other operating systems
    that fails like this:

      read(12, "", 65536)         = -1 EPIPE (Broken pipe)

    Which tells libuv there is a connection error and it should notify the
    user of that.  On the affected Linux kernels however, the read succeeds
    with an EOF:

      read(12, "", 65536)         = 0

    Which is subsequently passed on to the user. In most cases, the user
    will close the handle and everything is fine.

    Node.js however sometimes keeps the handle open in an attempt to flush
    pending write requests.  While libuv doesn't officially support this,
    unofficially it works...

    ...except on those older kernels.  Because the kernel keeps waking up
    the event loop without setting POLLOUT and because the read calls EOF
    but don't error, libuv's I/O state machine doesn't progress.

    That's why this commit changes uv__stream_io() to also write pending
    data.  While the read() system call doesn't error, the write() system
    call will.

    Fixes joyent/node#5504.

commit 536c5f8661af4b57f8cc8be43bf482ae27a9fcd8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 8 03:14:32 2013 +0200

    unix: clear UV_STREAM_SHUTTING after shutdown()

    Fix a state machine buglet where the UV_STREAM_SHUTTING flag didn't get
    cleared.

commit 3ab354367b2ff16a5ade1b585fdf7e10599084d3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 7 11:28:31 2013 +0200

    unix: remove overzealous assert

    Several node.js users are hitting this assert under what appear to be
    mostly benign conditions. In other words, it's unclear whether it's
    catching real bugs or just has wrong expectations.

    An aborting process is rather disruptive so I'm removing the assert
    from the stable branch and relanding it in the master branch.

commit f84becc64ea3f4653a2ee95319dab0aeee7c4044
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Thu Jun 6 10:48:24 2013 -0700

    build: make HAVE_DTRACE=0 should disable dtrace

commit c8ffee3460a1b507bbc7f5f83e4e09e4a769db76
Author: Brian White <mscdex@mscdex.net>
Date:   Fri May 31 18:37:45 2013 -0400

    freebsd: don't enable dtrace if it's not available

commit 8e4b248ca6cf66367476624899442974d17092f0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 5 15:01:34 2013 +0200

    unix: unconditionally stop handle on close

    Make sure the handle is fully stopped by the time uv__stream_close()
    calls uv_read_stop(). Fixes the following assertion:

        Assertion failed: (!uv__io_active(&stream->io_watcher, UV__POLLOUT)
        || !ngx_queue_empty(&stream->write_completed_queue)
        || !ngx_queue_empty(&stream->write_queue)
        || stream->shutdown_req != NULL
        || stream->connect_req != NULL), function uv_read_stop,
        file ../deps/uv/src/unix/stream.c, line 1329.

    Fixes joyent/node#5622.

commit e9ae62d13a38b89fee60ed502307530bc2b8f520
Author: isaacs <i@izs.me>
Date:   Tue Jun 4 12:00:31 2013 -0700

    Now working on v0.10.11

commit 0d95a88bd35fce93863c57a460be613aea34d2c5
Author: isaacs <i@izs.me>
Date:   Tue Jun 4 12:00:29 2013 -0700

    2013.06.05, Version 0.10.10 (Stable)

    Changes since version 0.10.9:

    * include: document uv_update_time() and uv_now() (Ben Noordhuis)

    * linux: fix cpu model parsing on newer arm kernels (Ben Noordhuis)

    * linux: fix memory leak in uv_cpu_info() error path (Ben Noordhuis)

    * linux: don't ignore OOM errors in uv_cpu_info() (Ben Noordhuis)

    * unix, windows: move uv_now() to uv-common.c (Ben Noordhuis)

    * darwin: make uv_fs_sendfile() respect length param (Wynn Wilkes)

commit b9eb402fb047b9c10c9395ea555d22bc869a5901
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 30 22:54:44 2013 +0200

    include: remove lame comment from uv.h

commit b4c658c3c0e650590cc0496833fead4f29deea75
Author: Wynn Wilkes <wynnw@movenetworks.com>
Date:   Wed May 29 12:13:34 2013 -0600

    darwin: make uv_fs_sendfile() respect length param

    The darwin sendfile implementation uses the &len parameter as input
    and output. The code was sending 0 (not using the value of req->len)
    so the behavior wasn't what the caller was expecting.

    This makes sure to initialize len with req->len to ensure that the
    caller can send portions of a file (not always everything to the
    end of the file).

commit 081f7018ecc1c66a76f76c4b5cacb327820674b9
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed May 29 18:32:25 2013 +0300

    test: use c-style comments

    Fixes a compilation problem on OS X caused by the use of c++-style
    comments in test-osx-select.c.

commit e0bdb3dbc916d8311538de2b783c53e9739bf652
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 29 16:13:34 2013 +0200

    unix, windows: move uv_now() to uv-common.c

commit b93cf8b594b5eaf4617174e674961fd3db3fb0c6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 29 01:37:36 2013 +0200

    linux: don't ignore OOM errors in uv_cpu_info()

commit 31282a97e70b24df7ebe4692967fee2a48aa2096
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 29 01:25:37 2013 +0200

    linux: fix memory leak in uv_cpu_info() error path

    Any memory allocated to hold CPU model strings wasn't freed on error.

commit 92c72f58bf59ee51a1680dd52b0e91a0ccae485d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 29 00:24:02 2013 +0200

    linux: fix cpu model parsing on newer arm kernels

    The format of /proc/cpuinfo on ARM kernels >= 3.8 has changed. Scan for
    the string "model name" (like x86) first, "Processor" second.

    Fixes #812.

commit dfff2e9e2336ac7b89234c3f7744a73fc6560bb1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue May 28 23:20:35 2013 +0200

    include: document uv_update_time() and uv_now()

commit 21c12b824a07be22a24547904b50ff022db11dd7
Author: isaacs <i@izs.me>
Date:   Tue May 28 12:08:49 2013 -0700

    Now working on v0.10.10

commit a195f9ace23d92345baf57582678bfc3017e6632
Author: isaacs <i@izs.me>
Date:   Tue May 28 12:08:46 2013 -0700

    2013.05.29, Version 0.10.9 (Stable)

    Changes since version 0.10.8:

    * unix: fix stream refcounting buglet (Ben Noordhuis)

    * unix: remove erroneous asserts (Ben Noordhuis)

    * unix: add uv__is_closing() macro (Ben Noordhuis)

    * unix: stop stream POLLOUT watcher on write error (Ben Noordhuis)

commit b329d51ef4ce32f34c21a016a7c311ddeb077878
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun May 26 23:44:55 2013 +0200

    unix: stop stream POLLOUT watcher on write error

    The node.js test suite sometimes hits the assert that was added in
    commit 4146805 that checks if there are connect, write or shutdown
    requests pending when the user calls uv_read_stop() while the stream
    is primed for writing.

    The libuv user (i.e. node.js) is supposed to close the stream on error.
    Because uv__stream_close() calls uv_read_stop(), it's possible that the
    POLLOUT watcher is still active.

commit 8e16f8e0564a7b853c2cb0f92572e7959c6cadae
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun May 26 23:02:17 2013 +0200

    unix: add uv__is_closing() macro

commit b38c9c1004993ca4f642629f5af1b7b09bbc6887
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat May 25 02:36:45 2013 +0200

    unix: remove erroneous asserts

    As of commit c53fe81, it's legal for write_queue_size > 0 when the
    write_queue itself is empty. Sounds illogical but it means there are
    error-state write requests in the write_completed_queue that will touch
    up the write_queue_size on the next tick of the event loop.

    Remove a few stray asserts that still checked for the old situation.

commit 636a13b8c46c52413e1da1795a952bfc738f3c55
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 23 07:16:00 2013 +0200

    unix: fix stream refcounting buglet

    Fix a buglet where uv_read_stop() would mark the handle as stopped even
    when there are in-progress write requests.

    This bug is unlikely to have affected anyone, the only case where it
    has a user-visible effect is when:

      a) the handle has been stopped for reading but not writing, and
      b) it's the last active handle in the event loop's pollset

    If both conditions are met, it's possible for the event loop to
    terminate prematurely.

    This reapplies commit 80f2f82 which was temporarily reverted in fe7b154
    because it was making a lot of node.js tests fail on OS X with the
    following assertion:

        Assertion failed: (!uv__is_active(handle)), function
        uv__finish_close, file ../../deps/uv/src/unix/core.c, line 165.

    Expecting that the handle is inactive when the state is UV_CLOSING
    turns out to be a bad assumption: it's possible that the handle is
    executing (for example) a shutdown request when uv__finish_close()
    is called. That's okay, uv__stream_destroy() takes care of that.

    The issue wasn't specific to OS X, it was just more visible on that
    platform. (Slow) debug builds on Linux exhibited the same behavior.

commit 7d5024e7e6564c36b99af39db075b0c9d75797f9
Author: isaacs <i@izs.me>
Date:   Fri May 24 14:37:56 2013 -0700

    Now working on v0.10.9

commit 0f39be12926fe2d8766a9f025797a473003e6504
Author: isaacs <i@izs.me>
Date:   Fri May 24 14:37:53 2013 -0700

    2013.05.25, Version 0.10.8 (Stable)

    Changes since version 0.10.7:

    * windows: make uv_spawn not fail under job control (Bert Belder)

    * darwin: assume CFRunLoopStop() isn't thread-safe (Fedor Indutny)

    * win: fix UV_EALREADY incorrectly set (Bert Belder)

    * darwin: make two uv__cf_*() functions static (Ben Noordhuis)

    * darwin: task_info() cannot fail (Ben Noordhuis)

    * unix: add mapping for ENETDOWN (Ben Noordhuis)

    * unix: implicitly signal write errors to libuv user (Ben Noordhuis)

    * unix: fix assert on signal pipe overflow (Bert Belder)

    * unix: turn off POLLOUT after stream connect (Ben Noordhuis)

commit fe7b154476145ebc69ab70d3ca1d195116a00065
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri May 24 21:23:09 2013 +0200

    Revert "unix: fix stream refcounting buglet"

    This change is making 45 out of 527 node.js tests fail on OS X with the
    following assertion:

        Assertion failed: (!uv__is_active(handle)), function
        uv__finish_close, file ../../deps/uv/src/unix/core.c, line 165.

    It's likely a manifestation of a bug elsewhere but, because there's a
    new node.js release going out tonight, I'm reverting it for now.

    This reverts commit 80f2f826bf90b84e659321c0b7fd8af419acb85e.

    Conflicts:
    	src/unix/stream.c

commit 41468050745bc135247f587eae1c38e958fd8377
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 23 07:37:36 2013 +0200

    unix: turn off POLLOUT after stream connect

    Clear the POLLOUT flag after we're done connecting. Not doing so isn't
    really harmful but it may cause the event loop to wake up more often
    than it has to.

commit 80f2f826bf90b84e659321c0b7fd8af419acb85e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 23 07:16:00 2013 +0200

    unix: fix stream refcounting buglet

    Fix a buglet where uv_read_stop() would mark the handle as stopped even
    when there are in-progress write requests.

    This bug is unlikely to have affected anyone, the only case where it
    has a user-visible effect is when:

      a) the handle has been stopped for reading but not writing, and
      b) it's the last active handle in the event loop's pollset

    If both conditions are met, it's possible for the event loop to
    terminate prematurely.

commit c5d570ddba7b3e95fdade96758df0eb2d24cf42f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 23 14:44:45 2013 +0200

    unix: fix assert on signal pipe overflow

    An incorrect assert() statement was causing libuv to crash when writing
    to an internal signal pipe would result in EAGAIN/EWOULDBLOCK.

    This commit doesn't solve the underlying issue that the signal pipe can
    overflow.

    This should fix joyent/node#5538

commit c53fe815442559fe58f362279bdc63f5483d6fdb
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 22 16:41:52 2013 +0200

    unix: implicitly signal write errors to libuv user

    Fix an infinite loop in the example below when the stream encounters
    an EPIPE/ECONNRESET/etc. error:

        // keep writing until we start buffering
        while (stream->write_queue_size == 0) {
          uv_write_t* req = make_write_req();
          uv_buf_t buf = uv_buf_init("PING", 4);
          uv_write(req, stream, &buf, 1, write_cb);
        }

    uv_write() does not return an error code on write errors, the error is
    only reported to the callback.

    Before this commit, uv_write() left stream->write_queue_size untouched
    on error, meaning the caller had no way to find out about that error
    until the next tick of the event loop - which in the example above
    leads to an infinite loop because that next tick is indefinitely
    postponed.

    This commit works around that at the cost of some added internal
    complexity.

    Fixes joyent/node#5516.

commit 739a5b25b5704d526a46a953da8b9b8db31770d4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon May 20 20:04:45 2013 +0200

    unix: add mapping for ENETDOWN

commit a1cb52a3ebe13f8e26a48e194e595e95c677de30
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon May 20 14:35:10 2013 +0200

    darwin: task_info() cannot fail

    And if it does: assert, don't return errno. It's a mach function, it
    doesn't set errno.

commit e515d71592afe66ddecd6bf2b1409848811cf7ff
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri May 17 14:42:14 2013 +0200

    darwin: make two uv__cf_*() functions static

commit db7dc6899d9badcfb99016ba87da2a66eae86dad
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat May 18 20:45:36 2013 +0200

    win: fix UV_EALREADY incorrectly set

    UV_EALREADY itself is already a libuv error, it should be set with
    uv__set_artifical_error and not with uv__set_sys_error.

    Closes #802

commit d5fa633ef22bd40c81af85dd2ee3882cce3c91c4
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Fri May 17 20:31:39 2013 +0400

    darwin: assume CFRunLoopStop() isn't thread-safe

    Use signaling mechanism for loop termination, because CFRunLoopStop() is
    most likely not a thread-safe function and invoking it from other thread
    may sometimes result in a "dead-lock".

    fix #799

commit 4f61ab2058c9baffa01d9c865a376ed8d3c65820
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 16 21:29:40 2013 +0200

    windows: make uv_spawn not fail under job control

    * Fix a potential issue introduced with 415f4d3, namely that uv_spawn
      can fail when the current process is under job control. This would
      happen on Windows versions that don't support nested jobs (versions
      prior to Windows 8 / Server 2012).

    * Change the `uv__init_global_job_handle` function signature to match
      what `uv_once` expects.

    * Add a bunch of comments that clarify how we're using job control,
      and how we're dealing with job control that might be established by
      our parent process.

commit 13496e9c1ab905af0c43a3dda7bdec7dca73d1b3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 14 16:50:22 2013 -0700

    Now working on v0.10.8

commit 028baaf0846b686a81e992cb2f2f5a9b8e841fcf
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 14 16:50:19 2013 -0700

    2013.05.15, Version 0.10.7 (Stable)

    Changes since version 0.10.6:

    * windows: kill child processes when the parent dies (Bert Belder)

commit 415f4d3e4c7ac25abf723eed3f5b40e63e045785
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 14 16:48:03 2013 -0700

    windows: kill child processes when the parent dies

    This makes Windows behave just like Unix. This does not affect
    processes that are spawned with the UV_PROCESS_DETACHED flag set.

commit 1fd10deec4de70ec3c13765948ec2726a0023c23
Author: isaacs <i@izs.me>
Date:   Tue May 14 14:40:01 2013 -0700

    Now working on v0.10.7

commit 11e6613e6260d95c8cf11bf89a2759c24649319a
Author: isaacs <i@izs.me>
Date:   Tue May 14 14:39:58 2013 -0700

    2013.05.15, Version 0.10.6 (Stable)

    Changes since version 0.10.5:

    * stream: fix osx select hack (Fedor Indutny)

    * stream: fix small nit in select hack, add test (Fedor Indutny)

    * build: link with libkvm on openbsd (Ben Noordhuis)

    * stream: use harder sync restrictions for osx-hack (Fedor Indutny)

    * unix: fix EMFILE error handling (Ben Noordhuis)

    * darwin: fix unnecessary include headers (Daisuke Murase)

    * darwin: rename darwin-getproctitle.m (Ben Noordhuis)

    * build: convert predefined $PLATFORM to lower case (Elliot Saba)

    * build: set soname in shared library (Ben Noordhuis)

    * build: make `make test` link against .a again (Ben Noordhuis)

    * darwin: fix ios build, don't require ApplicationServices (Ben
      Noordhuis)

    * build: only set soname on shared object builds (Timothy J. Fontaine)

commit 0564ee4a66956df1f3e0294e02296158e984d728
Author: Miroslav Bajtoš <miro.bajtos@gmail.com>
Date:   Wed Apr 17 00:33:25 2013 +0200

    test, sunos: disable process_title test

    Disable unit test failing due to missing implementation
    of uv_(set|get)_process_title for Sun OS (SmartOS).

    Based on discussion with @tjfontaine, such implementation is difficult
    if possible at all and it won't be done anytime soon. Thus there is
    no point in keeping the failing test around.

commit 55c150abfc11ad6c23674c196ed914db0f942224
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Mon May 13 15:48:32 2013 -0700

    build: only set soname on shared object builds

commit f22163c233d4a9dedfe38ebb18a1a414cd25ba62
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon May 13 20:06:25 2013 +0200

    darwin: fix ios build, don't require ApplicationServices

commit a11d16d8f5888aee56f129ddbd54c6130a881d2c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun May 12 16:42:30 2013 +0200

    build: make `make test` link against .a again

    Commit 3eb6eb3 links the .so with -Wl,-soname which breaks the
    `make test` target: run-tests is linked against (for example)
    libuv.so.0.11 while the actual file name is libuv.so.

    That's relatively easy to fix by getting creative with rpaths but it's
    even easier to fix by simply linking statically.

    It also means I no longer have to remember to set LD_BIND_NOW when
    profiling the benchmarks.

commit 3eb6eb35ccf1aedbd2297c98b73df3cb81215e3a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun May 12 14:48:58 2013 +0200

    build: set soname in shared library

commit 96a2df80846af3769f6c0d432cae2c5963c51e2e
Author: Elliot Saba <staticfloat@gmail.com>
Date:   Sat May 11 14:48:52 2013 -0700

    build: convert predefined $PLATFORM to lower case

commit fe2a3150c0244759154c4cc472af12eca79df8a8
Author: Miroslav Bajtoš <miro.bajtos@gmail.com>
Date:   Mon Apr 15 21:03:05 2013 +0200

    test: add error logging to tty unit test

commit af6e865a076af031213f9afc488c28306d6bc3d2
Author: Miroslav Bajtoš <miro.bajtos@gmail.com>
Date:   Mon Apr 15 20:36:56 2013 +0200

    test: fix process_title failing on linux

    Shorten the test string from 40 to 38 characters because the title
    length is limited to 39 characters.

    Truncation of long titles was introduced intentionally by commit
    a0c1d84 (see discussion in joyent/node#5006).

commit 2c21050956206b5e7962e86f4bdbaade1a44b6ae
Author: Miroslav Bajtoš <miro.bajtos@gmail.com>
Date:   Sat Apr 20 06:43:31 2013 +0200

    test: add RETURN_SKIP and RETURN_TODO macros

    Added two new flags to identify tests that are intentionally ignored
    (usually because we don't want to implement the tested functionality
    on current platform) and test serving as TODO list (usually indicating
    that the tested functionality should be implemented on current plaform
    in the near future.)

commit 9b801d551b70bd4b19e1b29fd3a257bec8051842
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 2 13:59:18 2013 +0200

    darwin: rename darwin-getproctitle.m

    Rename it to darwin-getproctitle.c, it doesn't need an Objective-C
    compiler. Fix up -Wpedantic warnings about void to function pointer
    casts and include <ApplicationServices/ApplicationServices.h> to get
    the GetCurrentProcess() function prototype.

commit 4b0fac89907380a62c7acc15303a39839f05e011
Author: Daisuke Murase <typester@cpan.org>
Date:   Thu May 2 10:06:03 2013 +0900

    darwin: fix unnecessary include headers

    This file doesn't use any Cocoa functions, CoreFoundation.h is enough here.
    This line causes compilation error on iOS environment.

commit f6fb1dfef149b09c106538bc1040b4444d6c94bb
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 2 13:15:21 2013 +0200

    ChangeLog: fix incorrect release date

commit b3ab332b340fb857c4d6bd43208aa708a6eb00bd
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 1 19:14:23 2013 +0200

    unix: fix EMFILE error handling

    On Linux, the accept() and accept4() system calls checks for EMFILE
    before checking for EAGAIN. Refine our EMFILE error handling tactic
    to deal with that. Here is what used to happen:

     1. The event loop calls accept() and sees EMFILE.

     2. Libuv switches to EMFILE error handling mode. It closes a stashed
        file descriptor and calls accept() again.

     3. The accept() system call fails with EAGAIN.

     4. Libuv reopens the stashed file descriptor (reaching RLIMIT_NOFILE
        again) and returns control to the regular event loop.

     5. The regular event loop calls accept(), sees EMFILE and jumps to
        step 2 again. Effectively an infinite loop.

    Avoid that by not calling accept() again when we've seen EAGAIN.

    Fixes joyent/node#5389.

commit 67f9b91a8b76536c47045a9edabe440fa78a42c0
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Tue Apr 30 12:51:32 2013 +0400

    stream: use harder sync restrictions for osx-hack

    Synchronize harder to avoid excessive spins, invokations of async
    callback and sporadic assertion failures on double-call of async
    callback.

commit 4e5b8dc2efb7a5711b0741ff61b9da914b4920fc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 29 13:38:57 2013 +0200

    build: link with libkvm on openbsd

    The Makefile already did and now the gyp build does too. Fixes the
    OpenBSD build of node.js.

    Fixes joyent/node#5363.

commit ac4e7e7ff2d947297ac2995561e49c0e3efdafd9
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Fri Apr 26 23:43:28 2013 +0400

    stream: fix small nit in select hack, add test

commit 2400716d875a6481c13fd0b46068ab3b6afa5345
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Tue Apr 23 22:34:43 2013 -0400

    stream: fix osx select hack

    After latest twiddling, `stream->io_watcher.fd` doesn't contain a real
    stream's file descriptior anymore. The one from `select_state` should be
    used instead.

    Zero-initialize `select_state->event` field.

commit a0cb926e2eb9979378f4b71854e8c035035cc3e8
Author: isaacs <i@izs.me>
Date:   Mon Apr 22 17:37:25 2013 -0700

    Now working on v0.10.6

commit 6595a7732c52eb4f8e57c88655f72997a8567a67
Author: isaacs <i@izs.me>
Date:   Mon Apr 22 17:37:22 2013 -0700

    2013.04.24, Version 0.10.5 (Stable)

    Changes since version 0.10.4:

    * unix: silence STATIC_ASSERT compiler warnings (Ben Noordhuis)

    * windows: make timers handle large timeouts (Miroslav Bajtoš)

    * windows: remove superfluous assert statement (Bert Belder)

    * unix: silence STATIC_ASSERT compiler warnings (Ben Noordhuis)

    * linux: don't use fopen() in uv_resident_set_memory() (Ben Noordhuis)

commit cd10637d0b3c03e28831eca2d66d8bda3216b10c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 22 08:24:57 2013 +0200

    linux: don't use fopen() in uv_resident_set_memory()

    RSS is a reflection of the number of pages that a process has mapped.
    glibc implements fopen() in terms of mmap() which means that trying
    to read the number of mapped pages changes it. Switch to open().

commit 105e4dcb231f88c8e9a71cca85be9af9267022f4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 22 07:46:21 2013 +0200

    unix: silence STATIC_ASSERT compiler warnings

    Fix the following two warnings:

      src/unix/core.c:74:1: warning: ISO C90 forbids array
      'static_assert_failed' whose size can't be evaluated [-Wvla]
      src/unix/core.c:76:1: warning: ISO C90 forbids array
      'static_assert_failed' whose size can't be evaluated [-Wvla]

commit a3963883b81ec2c2612511ff3fa885b2944d8457
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 18 02:55:15 2013 +0200

    windows: remove superfluous assert statement

commit 09ff5100e3ecae807dd19796e08a0b756bc04ddd
Author: Miroslav Bajtoš <miro.bajtos@gmail.com>
Date:   Tue Apr 16 16:29:48 2013 +0200

    windows: make timers handle large timeouts

    Fixes a bug where timers with very large timeouts run on the next tick.
    Based on a similar bug fix for unix (9b61939).

    Fixes joyent/node#5101.

commit ef85bdaffbc878b44b24f01e97f7c7e7301c6dfe
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Apr 12 19:37:52 2013 +0200

    unix: silence STATIC_ASSERT compiler warnings

    Newer versions of gcc complain about the definition of the zero element
    array. Squelch that warning by turning it into a one element array.

commit 5ed1d02cc0167704710d1dd4aafd26653eaf810f
Author: isaacs <i@izs.me>
Date:   Thu Apr 11 09:00:10 2013 -0700

    Now working on v0.10.5

commit 85827e26403ac6dfa331af8ec9916ea7e27bd833
Author: isaacs <i@izs.me>
Date:   Thu Apr 11 09:00:06 2013 -0700

    2013.04.12, Version 0.10.4 (Stable)

    Changes since version 0.10.3:

    * include: update uv_backend_fd() documentation (Ben Noordhuis)

    * unix: include uv.h in src/version.c (Ben Noordhuis)

    * unix: don't write more than IOV_MAX iovecs (Fedor Indutny)

    * mingw-w64: don't call _set_invalid_parameter_handler (Nils Maier)

    * build: gyp disable thin archives (Timothy J. Fontaine)

    * sunos: re-export entire library when static (Timothy J. Fontaine)

    * unix: dtrace probes for tick-start and tick-stop (Timothy J. Fontaine)

    * windows: fix memory leak in fs__sendfile (Shannen Saez)

    * windows: remove double initialization in uv_tty_init (Shannen Saez)

    * build: fix dtrace-enabled out of tree build (Ben Noordhuis)

    * build: squelch -Wdollar-in-identifier-extension warnings (Ben
      Noordhuis)

    * inet: snprintf returns int, not size_t (Brian White)

    * win: refactor uv_cpu_info (Bert Belder)

    * build: add support for Visual Studio 2012 (Nicholas Vavilov)

    * build: -Wno-dollar-in-identifier-extension is clang only (Ben
      Noordhuis)

commit 0ff06b4ac38a3d53c32e52b2c649dd2d4b3d2b0c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 10 23:40:55 2013 +0200

    build: -Wno-dollar-in-identifier-extension is clang only

    Add a compiler check because turning on the option unconditionally
    breaks the build when CC=gcc.

    This should also fix the build on versions of OS X that predate Apple's
    switch to clang (10.6 and older.)

commit 633d33a92a4004938b8a88f661571c3fc93085db
Author: mscdex <mscdex@mscdex.net>
Date:   Wed Apr 10 11:36:13 2013 -0400

    cygwin: remove unused variable

commit bc5fa794b96049e39e7fc1192137db36e1dc4dc8
Author: Nicholas Vavilov <vvnicholas@gmail.com>
Date:   Tue Feb 26 15:01:48 2013 +0200

    build: add support for Visual Studio 2012

    Closes #722

commit a9bce29f0c98187fcf09d1ba9dcd4eb5548fb30e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 10 16:02:24 2013 +0200

    win: refactor uv_cpu_info

    Fixes a couple of error handling issues:

    * Don't free an uninitialized pointer when allocating memory for
      `cpu_infos` fails.
    * Don't return a bogus error value when NtQuerySystemInformation fails.
      That function returns an NTSTATUS code instead of setting the last
      error.
    * Don't clobber out parameters when an error happens.

commit 9021dbcd8d1dc3b1c6cca82f46d5e774088d4ae6
Author: Brian White <mscdex@mscdex.net>
Date:   Wed Apr 10 14:31:50 2013 +0200

    inet: snprintf returns int, not size_t

commit 4d4f1496d9b600dfd3e4c4f0040d7b4a0d41043c
Author: Brian White <mscdex@mscdex.net>
Date:   Wed Apr 10 14:29:29 2013 +0200

    windows, unix: remove dead code

commit 8ea49c12235fc22bfe9d192224507c5a1183ee98
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 10 14:31:28 2013 +0200

    build: squelch -Wdollar-in-identifier-extension warnings

    The dtrace probes contain dollar signs. We know, llvm-gcc, and we don't
    care. Suppress the warnings.

commit bad707db3f499decd864907809cb5d9b423d1d98
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 10 14:21:38 2013 +0200

    gitigore: ignore auto-generated uv-dtrace.h header

commit be5b16aabd1d1996ca666a48b933a79e3d37b340
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 10 14:19:14 2013 +0200

    build: fix dtrace-enabled out of tree build

commit 603915dd0081ec2f34d612291a1aeb909f6f2b76
Author: Shannen Saez <shannenlaptop@gmail.com>
Date:   Wed Apr 10 14:16:39 2013 +0200

    windows: remove double initialization in uv_tty_init

commit 7570a35b70a33258e4c36e080e900f30c3213697
Author: Shannen Saez <shannenlaptop@gmail.com>
Date:   Wed Apr 10 14:15:13 2013 +0200

    windows: fix memory leak in fs__sendfile

commit e1ffc6c0eed94a328e8435bc215820a4701ee8b5
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Mon Apr 8 16:17:01 2013 -0700

    unix: dtrace probes for tick-start and tick-stop

commit 0da533e84f0a4f32d200bf9568548bce1e5e315a
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Mon Apr 8 16:31:35 2013 -0700

    sunos: re-export entire library when static

    This is useful to make sure linker doesn't strip things like dtrace

commit e294975bb4e01efac13a134b3282193e543c68c7
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Mon Apr 8 16:30:27 2013 -0700

    build: gyp disable thin archives

    Thin archives aren't available on all platforms, notably smartos

commit 5676924c5bd7a6e59ec0abb958c31a98b667ea87
Author: Nils Maier <maierman@web.de>
Date:   Wed Apr 10 14:00:37 2013 +0200

    mingw-w64: don't call _set_invalid_parameter_handler

    Check the __MSVCRT_VERSION__, as mingw-w64 always defines
    _WRITE_ABORT_MSG.

    Closes #774

commit 895e77639ee9aa3bc17b4bc9d675d63d7940c396
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Mon Apr 8 17:10:39 2013 +0400

    unix: don't write more than IOV_MAX iovecs

    Write no more than `IOV_MAX` chunks with `writev()` at
    once, otherwise `writev()` returns EINVAL.

commit f1215b791811e5c860152ecde038f35537dab57f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Apr 4 03:02:06 2013 +0200

    unix: include uv.h in src/version.c

    Include uv.h so the compiler sees the right visibility attribute for
    uv_version() and uv_version_string().

    GYP builds compile with -fvisibility=hidden. Before this commit, the
    symbols were not visible in libuv.so.

    Fixes joyent/node#5213.

commit ec24bfac194419fae2b66aa2bb0d8d9d2cb4547a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Mar 31 20:02:24 2013 +0200

    include: update uv_backend_fd() documentation

    uv_run_once() is no more, replace with uv_run(UV_RUN_NOWAIT).

    Fixes #759.

commit 9e90cdeae72b0b55becddfef1d441aeeb588e083
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Mar 28 19:59:51 2013 +0100

    Now working on v0.10.4

commit 31ebe23973dd98fd8a24c042b606f37a794e99d0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Mar 28 19:56:36 2013 +0100

    2013.02.04, Version 0.10.3 (Stable)

    Changes since version 0.10.2:

    * include: remove extraneous const from uv_version() (Ben Noordhuis)

    * doc: update README, replace `OS` by `PLATFORM` (Ben Noordhuis)

    * build: simplify .buildstamp rule (Ben Noordhuis)

    * build: disable -Wstrict-aliasing on darwin (Ben Noordhuis)

    * darwin: don't select(&exceptfds) in fallback path (Ben Noordhuis)

    * unix: don't clear flags after closing UDP handle (Saúl Ibarra
      Corretgé)

commit a9a23dc28ec73912dfaae4fc2a8d815e20578695
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Thu Mar 28 15:50:42 2013 +0100

    unix: don't clear flags after closing UDP handle

commit 75141493ba44addf7e089308e9692357f958ceda
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 28 00:12:24 2013 +0100

    darwin: don't select(&exceptfds) in fallback path

    The exceptfds set is for polling OOB data, not errors.

    Fixes joyent/node#5155.

commit fe136cedb9f5d627e5b21934a48c97ff62f4c50e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 28 00:10:44 2013 +0100

    build: disable -Wstrict-aliasing on darwin

    The antiquated gcc/clang that ships with Xcode emits waaaay too many
    false positives.

commit 0fb9b22ce6263d2996421c1261d39c6bb3255cb5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Mar 26 15:16:24 2013 +0100

    build: simplify .buildstamp rule

commit bd20b371700e6354d8d0ec3a102048946724f053
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Mar 26 14:49:29 2013 +0100

    doc: update README, s/OS/PLATFORM/

    Commit a9740c9 changed the name of the OS var to PLATFORM but forgot to
    update the README.

commit 3f6122b3f7e58109ff82bb217ff4db3bb310a98b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Mar 26 14:45:53 2013 +0100

    include: remove extraneous const from uv_version()

    Fixes the following warning:

      include/uv.h:236:30: warning: type qualifiers ignored on function
      return type [-Wignored-qualifiers]
       UV_EXTERN const unsigned int uv_version(void);

commit d5f8c1a4d3dcfc42b15c75a53427763233bd2110
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Mar 25 15:38:41 2013 +0100

    Now working on v0.10.3

commit 0f36a00568f3e7608f97f6c6cdb081f4800a50c9
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Mar 25 15:32:44 2013 +0100

    2013.03.25, Version 0.10.2 (Stable)

    This is the first officially versioned release of libuv. Starting now
    libuv will make releases independently of Node.js.

    Changes since Node.js v0.10.0:

    * test: add tap output for windows (Timothy J. Fontaine)

    * unix: fix uv_tcp_simultaneous_accepts() logic (Ben Noordhuis)

    * include: bump UV_VERSION_MINOR (Ben Noordhuis)

    * unix: improve uv_guess_handle() implementation (Ben Noordhuis)

    * stream: run try_select only for pipes and ttys (Fedor Indutny)

    Changes since Node.js v0.10.1:

    * build: rename OS to PLATFORM (Ben Noordhuis)

    * unix: make uv_timer_init() initialize repeat (Brian Mazza)

    * unix: make timers handle large timeouts (Ben Noordhuis)

    * build: add OBJC makefile var (Ben Noordhuis)

    * Add `uv_version()` and `uv_version_string()` APIs (Bert Belder)

commit eeeb07934b0b284dd742326b564d59adcc5b0069
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Mar 25 15:09:58 2013 +0100

    Update AUTHORS and .mailmap

commit c7b1c53ef1afe7c0fef0822d72b0783368b626de
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Mar 25 15:33:59 2013 +0100

    Prepare for making releases, add uv_version/uv_version_string API

commit 1487d5aea71ef20875f39ef66f0f8be46a8b3baf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Mar 23 23:16:53 2013 +0100

    build: add OBJC makefile var

    Overrides the Objective-C compiler that is used. Defaults to $(CC).

commit 9b619396d93182be26287f261ac654611aa99d95
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 21 14:47:38 2013 +0100

    unix: make timers handle large timeouts

    This commit fixes two closely related integer overflow bugs:

    * Timers with a timeout > INT_MAX cause uv__next_timeout() to return
      a negative value.

    * Timers with very large timeouts (close or equal to ULLONG_MAX) run on
      the next tick.

    In both cases, clamp the values to prevent the overflow from happening.

    Fixes joyent/node#5101.

commit 77cb29a723b1bda2cd4f938031d352e46bd25fed
Author: Brian Mazza <louseman@gmail.com>
Date:   Mon Mar 4 22:17:50 2013 -0600

    unix: make uv_timer_init() initialize repeat

    uv_timer_get_repeat() should return 0 for timers that haven't been
    started.

commit a9740c9bc432fe0b416c4c765a6011ddc2df966f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Mar 17 00:12:42 2013 +0100

    build: rename OS to PLATFORM

    Rename the OS make variable to PLATFORM, it conflicts with the OS env
    var. That is, running `make` when the OS env var is set, may cause
    spurious build breakage.

    Fixes #737.

commit b45a74fab3745b695aa43d8e20d2c32b10843d5c
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Fri Mar 15 21:54:45 2013 +0400

    stream: run try_select only for pipes and ttys

    Its not necesary for TCP and other streams, since fd is always working
    with kqueue there.

commit 7b66ea18ff47ab47aaf1ca20bc7f544a76b0e8df
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 14 13:36:05 2013 +0100

    unix: improve uv_guess_handle() implementation

    Make it understand FIFOs, character devices and sockets.

commit 9f714a1d25d4e99dfcf4985656b070431431523b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 14 12:49:00 2013 +0100

    include: bump UV_VERSION_MINOR

    Fixes #740.

commit 905d56c1405b044b3e54e75a9fd22979d9186f3e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Mar 12 01:02:28 2013 +0100

    unix: fix uv_tcp_simultaneous_accepts() logic

    Inverts the meaning of the 'enable' argument. Before, it actually set
    the UV_TCP_SINGLE_ACCEPT flag when enable=1. Now it clears it, which is
    what uv-win does and what you would expect it to do.

commit 47fd23ffc8a175e3363960573f8e45d845569f55
Merge: 1ef1344 5462dab
Author: Joe Cheng <joe@rstudio.com>
Date:   Mon Mar 11 10:20:57 2013 -0700

    Merge tag 'node-v0.10.0'

    Node v0.10.0

commit 2f84a57566027a66f0f876b31f4524bde41ca91a
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Tue Mar 5 11:32:54 2013 -0800

    test: add tap output for windows

commit 5462dab8890c414154690d8a45b1384301b27436
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Mar 9 20:19:28 2013 +0100

    win/tcp: don't enable iocp sync bypass when iocp emulation is used

    When iocp sync bypass is in use libuv doesn't expect the system to
    generate events when an i/o operation completes synchronously. However
    when iocp emulation is enabled an event will always be generated because
    SetFileCompletionNotificationModes() doesn't stop OVERLAPPED.hEvent from
    becoming signaled.

    This should fix joyent/node#4959.

commit f59dc221e6343a290c7c349bb1875029bedb0a9a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Mar 9 18:24:59 2013 +0100

    win: fix potential HANDLE corruption due to incorrect cast

    Closes #738.

commit b68ee4049688494026c0f2a703a2d09aeff18438
Author: isaacs <i@izs.me>
Date:   Thu Mar 7 15:59:21 2013 -0800

    win: Map ERROR_INVALID_FUNCTION to EISDIR

    This error is raised when calling read() or write() on a directory.

    A bit of googling turns up some cases where this error can be raised
    that are not properly mapped to EISDIR, but are also cases that libuv
    doesn't really care about, like the Password Manager API,
    GetFirmwareEnvironmentVariable, or CreateTapePartition.

    If libuv ever needs to handle these cases, then I suppose that the
    ERROR_INVALID_FUNCTION->EISDIR mapping could be done directly in the
    fs read() and write() functions, but doing so at this point seems
    premature, as it makes the error code mapping a bit more messy.

    Fixes joyent/node#4951

commit 8fbe43379de4b8958c45e47b54d296ff1bef79e4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 7 01:54:04 2013 +0100

    unix: please valgrind, free memory in threadpool.c

commit dac5a758f8161b5e7aa42fea12582025a9b4e150
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 7 00:28:15 2013 +0100

    unix: replace volatile cast with ACCESS_ONCE macro

commit e0df7b687339fc035ef0148e161d77f01dcc2d9a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 7 00:15:48 2013 +0100

    unix: fix strict aliasing warning in udp.c

commit b6a50c7295c8dc27c697a164f5bb3b594d025209
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 7 00:17:19 2013 +0100

    unix: add uv_buf_t static asserts to core.c

    Verify that our uv_buf_t type is ABI-compatible with struct iovec.

commit ef9b0655328baf623a9e1951b2e261ba70a3ded3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Mar 6 23:59:48 2013 +0100

    unix: add STATIC_ASSERT macro

commit ee9899e28b3f5ac4e3b42de8173f9237db7e1f06
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Mar 6 23:43:25 2013 +0100

    unix: fix strict aliasing warnings, macro-ify functions

    Replace a few internal functions in uv-common.h with macros to avoid
    strict aliasing warnings with older versions of gcc.

    It's not smart enough to figure out that e.g. a uv_tcp_t is an instance
    of uv_handle_t with similar alignment requirements and therefore no
    aliasing happens. More recent versions of gcc don't suffer from this.

    I'm not normally in the habit of catering to compiler defects but the
    aliasing warnings drown out legitimate warnings, hence the change.

commit 1e97b4567e1717bf17316230eff6e1a7350b8034
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Mar 6 23:14:37 2013 +0100

    unix: honor UV_THREADPOOL_SIZE environment var

    Make the size of the thread pool configurable through an environment
    variable. For sanity reasons, the size is clamped to the range 1-128.

commit f89125e0e631f6b87b3a65970d88111825d7dc59
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 5 20:31:52 2013 +0100

    win/tty: fix typo in color attributes enumeration

commit 4abad2381e126ad7a9eb18342172e495bf6e681d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 5 20:05:36 2013 +0100

    win/tty: don't touch insert mode or quick edit mode

    Hopefully this fixes joyent/node#4809.

commit 8a99762c0e8e7fe6fe65133a7a8faafb73641c67
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 5 20:03:40 2013 +0100

    win/tty: fix case where uv_read_start incorrectly reports failure

    In very rare circumstances a uv_read_start() call on a uv_tty_t handle
    in raw mode would return -1 but there was no actual failure. This patch
    fixes that.

commit 1ef1344e9c94672757fbf83b1e78e09bba6ec24f
Merge: ec9708f 2a8d2a5
Author: Joe Cheng <joe@rstudio.com>
Date:   Tue Mar 5 10:21:58 2013 -0800

    Merge tag 'node-v0.9.11' into HEAD

commit 0b26af376a8d788adf00ed4cb60aba4da2f046c1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Mar 5 15:57:38 2013 +0100

    unix: handle POLLERR and POLLHUP in uv__stream_io

    Fixes a busy loop when the file descriptor emits POLLHUP but not POLLIN
    or POLLOUT, e.g. when polling the read end of a pipe and the write end
    is closed.

    Fixes joyent/node#4923.

commit ea0796f3bf242fdc173751a23df8c1c70a09dcdb
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Mar 4 20:22:25 2013 +0100

    windows: link with advapi32 and shell32 libraries

    Older versions of GYP would set up the Visual Studio project to link
    with these libraries by default, but this was changed in r1584 (see
    https://codereview.chromium.org/12256017).

    Closes #728

commit 7e59f9bb5389268fb554d435333325920d7783ba
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Mar 2 01:44:31 2013 +0100

    linux: make uv_cpu_info() handle absent procfs

    Return an error when reading from /proc files fails because the procfs
    isn't mounted.

commit 2a8d2a5b73878e00823c59b29bf887b8b4b11743
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 1 01:57:45 2013 +0100

    darwin: fix spurious uv_write2() segfault

    We abuse uv_write2() to send over UDP handles to child processes.
    Don't call uv__stream_fd() on those handles, it's a macro that on OS X
    evaluates to a function that operates on a uv_stream_t with a couple of
    OS X specific fields. On other Unices it does (handle)->io_watcher.fd,
    which works but only by accident.

    Fixes joyent/node#4870.

commit 0ad46bdb56959aee089aa261b15bed7af177de5f
Author: Marc Schlaich <marc.schlaich@googlemail.com>
Date:   Thu Feb 28 14:29:20 2013 +0100

    build, windows: return an error code on failure

commit 49d2ae33ef4f871496e042ed83cf5a7c65b97857
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Wed Feb 27 13:39:10 2013 -0800

    test: fix tap output even when ok but have output

commit 1821bba40898ec074b284dc457e46cc1e4f65e33
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 27 22:19:20 2013 +0100

    test: fix tap output check

    Only report as an error when status != 0.

    Stops the platform_output test from being reported as having failed
    on Jenkins.

commit cdf69dbed62855140e8c3c259b172af7078821a2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 27 22:08:58 2013 +0100

    build: add distclean target to out-of-tree builds

commit dd2002520797921c5e2f8b060aa412beb41aa09e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 27 22:06:43 2013 +0100

    build: make clean target remove all build artifacts

commit 78dcaa5cac4a53d7854005576f07dc536575cee0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 27 21:46:46 2013 +0100

    darwin: fix read from uninitialized struct kevent

    In the OS X fallback code, don't read from the struct when the kevent()
    syscall times out.

commit 7c3b9e5a121db6c0e8f193750afd1b272994eeab
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 27 21:40:03 2013 +0100

    unix: make stream.c internal functions static

commit a924f79023b57d947c9aee2d3bafe8f0cc95520b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 24 17:14:16 2013 +0100

    test: remove 'is root?' check

    I debug tests regularly as root (because dtrace and dtruss require the
    additional privileges). The 'is root?' check gets in the way more often
    than it prevents me from doing something silly. Remove it.

commit 85124d7eb5d9455316c46eb36140cdb80154409a
Author: Marc Schlaich <marc.schlaich@googlemail.com>
Date:   Wed Feb 27 13:38:14 2013 +0100

    build, windows: allow override of python executable

    Fixes #723.

commit a0c1d84c144da61a777e9d6554b9e832e3dd8d1d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Feb 26 19:14:40 2013 +0100

    linux, darwin: don't touch environ in uv_setup_args

    Don't overwrite the environment. On OS X, the entries in the environ
    table are not necessarily adjacent. It's arguably also safer for setuid
    binaries.

    Fixes joyent/node#4847.

commit c5101ae9b504dc8c0ccf90a6bda6f3a1a2f9cd0b
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Fri Feb 15 04:27:32 2013 +0100

    unix, windows: add common uv_udp_* error checking

commit ae2b30a48f5cf0cda91c395a5af20cfa7769d5dc
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Tue Feb 26 11:17:49 2013 +0100

    windows: initialize stop_flag explicitly

    The default loop lives in the bss section so it's zeroed on startup
    but loops created with uv_loop_new() live on the heap and contain
    random garbage. Initialize the stop_flag explicitly to avoid spurious
    bugs.

commit ec9708feb100910093338ae0c70863e854b8393b
Merge: 71428e3 72bbf5d
Author: Joe Cheng <joe@rstudio.org>
Date:   Mon Feb 25 14:24:44 2013 -0800

    Merge remote-tracking branch 'upstream/master'

commit 72bbf5d702475e7f42ce551857b1e0ab2e8ddff5
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Mon Feb 25 09:43:34 2013 -0800

    test: don't rewind_cursor when using tap_output

commit 4b957482ba1ba12e40933ef1815ee6a098450280
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Mon Feb 25 17:20:34 2013 +0100

    windows: fix uv_stop in ONCE and NOWAIT modes

    Same as the fix in 492efb9 but this time for uv-win.

commit 492efb95ffc5b33a179cfaeb8215dc52111fb4d6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 25 16:40:58 2013 +0100

    unix: make uv_stop work when embedded

    * Make uv_stop() work when libuv is embedded in another event loop.

    * Fix a small bug where loop->stop_flag was not reset when mode ==
      UV_RUN_ONCE or UV_RUN_NOWAIT. The next call to uv_run() would return
      immediately without doing any work.

commit bb3d1e24da288db876dcbfa4e983c9ceeb583890
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Wed Jan 16 09:36:20 2013 +0100

    unix, windows: add uv_stop, stop running event loop

commit 79880121cecb622226663d65e5e0145799a57f50
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Wed Jan 16 09:24:28 2013 +0100

    windows: align uv_run code with unix

commit ce1a266c05f8aa6e1e0072558eac287fe70cf962
Author: Marc Schlaich <marc.schlaich@googlemail.com>
Date:   Mon Feb 25 11:27:40 2013 +0100

    build: fix misleading vcbuild.bat error message

commit 6ba6f4b4d651c1e3aff6946ef3c7a2f1b2c5d6d8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 25 03:43:01 2013 +0100

    build: turn on strict aliasing in release builds

commit 39c8a90a91211d047fa3c267814e17d5c10cc83c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 25 03:22:10 2013 +0100

    unix: set errno in sendfile emulation

    The sendfile emulation in src/unix/fs.c polls the file descriptor for
    write readiness. If POLLERR or POLLHUP is set, it bails out but doesn't
    set errno (hence it doesn't report a useful error code). Rectify that.

    Fixes #620.

commit b04fc33ef748293498023f3cf2dc987e8c1ffdd4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 25 02:25:49 2013 +0100

    linux: use eventfds for async handles

    Use eventfds to drive async handles, fall back to regular pipes on older
    kernels (pre-2.6.22).

    Gives a nice boost on the async handle benchmarks. Before:

      12,516,113 async events in 5.0 seconds (2,503,222/s, 1,048,576 unique
      async1: 11.95 sec (83,701/sec)
      async2: 11.65 sec (85,862/sec)
      async4: 5.20 sec (192,154/sec)
      async8: 9.97 sec (100,315/sec)
      async_pummel_1: 1,000,000 callbacks in 2.56 seconds (389,919/sec)
      async_pummel_2: 1,000,000 callbacks in 2.65 seconds (377,205/sec)
      async_pummel_4: 1,000,000 callbacks in 2.18 seconds (457,704/sec)
      async_pummel_8: 1,000,000 callbacks in 4.19 seconds (238,632/sec)

    After:

      16,168,081 async events in 5.0 seconds (3,233,616/s, 1,048,576 unique
      async1: 11.08 sec (90,213/sec)
      async2: 10.17 sec (98,297/sec)
      async4: 4.81 sec (207,789/sec)
      async8: 8.98 sec (111,419/sec)
      async_pummel_1: 1,000,000 callbacks in 1.16 seconds (863,296/sec)
      async_pummel_2: 1,000,000 callbacks in 1.45 seconds (691,459/sec)
      async_pummel_4: 1,000,000 callbacks in 0.66 seconds (1,514,770/sec)
      async_pummel_8: 1,000,000 callbacks in 1.42 seconds (704,549/sec)

    That's a speedup from anywhere between 10% to 330%.

commit 92151658eb46956b70a8976e577258486bd9071f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 25 01:32:19 2013 +0100

    unix: abstract away async pipe infrastructure

    This commit lays the groundwork for the switch to eventfds on Linux.

commit e89aced8d6ca9e5fcb3d5e6159db0322beef4234
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 24 03:50:31 2013 +0100

    darwin: implement uv_set_process_title, part 2

    Make changes to the process title visible to tools like `ps`.

    The argv clobber technique is reasonably portable across Unices;
    the common code has been moved into src/unix/proctitle.c and is used
    on Linux and OS X. Other platforms will probably follow in the future.

commit 14eb8b03919db9004503691c63c937fef9c405b1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 24 02:26:28 2013 +0100

    darwin: implement uv_set_process_title, part 1

    Apply undocumented Carbon magic to change the process title in a way
    that's visible in the Activity Monitor.

commit 0761fb51b2579cfec7051011a453b5203a9d8ef8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 24 02:24:09 2013 +0100

    build: support 64 bits darwin builds

    Before this commit, gyp built 32 bits versions of libuv exclusively.

    Enable with:

      $ ./gyp_uv -Dtarget_arch=x64

commit bfe269b8a0ebe89b6b0695bdfb727dbf9ac273d5
Author: Timothy J Fontaine <tjfontaine@gmail.com>
Date:   Thu Feb 21 11:46:59 2013 -0800

    test: add tap output

    Given UV_TAP_OUTPUT being set, test result output should use TAP formatting

commit 71428e37d88a070804b217122e89d2932fa5daa4
Merge: edee5cd c98083e
Author: Joe Cheng <joe@rstudio.org>
Date:   Fri Feb 22 14:01:55 2013 -0800

    Merge remote-tracking branch 'upstream/master' into HEAD

commit c98083ef26209a1669f26aa7bbf48b2fc9402b47
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Feb 22 17:02:04 2013 +0100

    unix: short-circuit on no-op io watcher changes

    Don't add the io watcher to the watcher queue if the requested change
    is effectively a no-op, that is, when the event mask doesn't change.

    The exception here is sunos because the event ports backend requires
    that watched file descriptors are re-added on every turn of the event
    loop.

    This commit is a micro-optimization, it does not change the event
    loop's observable behavior in any way.

commit da0b84d4e8408a6f92147d8127b01b3274215444
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Feb 22 14:39:39 2013 +0100

    unix: auto-unref spawn handle on process exit

    Consistent, for better or worse, with uv-win.

    Fixes #718.

commit edee5cd40471489d7420dfc7407f71355f520002
Author: Joe Cheng <joe@rstudio.org>
Date:   Thu Feb 21 14:52:50 2013 -0800

    Another fix for RTools toolchain

commit 3348cd74075bf593ab8484d9ad915699d4b9c9fc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Feb 21 23:11:40 2013 +0100

    unix: handle EINPROGRESS for unix sockets

    Before this commit, it was assumed that connect() on UNIX sockets never
    returns EINPROGRESS. It turned out to be a bad assumption: Dave Pacheco
    reports sporadic hangups on SmartOS because of that.

    It's not clear to me _why_ the Illumos kernel returns that error but
    that's inconsequential: whatever the cause, libuv needs to handle it
    and now it does.

    Fixes joyent/node#4785.

commit 1d64c8284d373da9dc8652d71cd9a3f904915739
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Feb 21 10:29:16 2013 +0100

    unix: use uv__set_artificial_error in uv_write2

    * Use uv__set_artificial_error(), slightly more efficient than
      uv__set_sys_error().

    * Return UV_EINVAL instead of UV_EOPNOTSUPP.

    * Fix up style.

commit 9a8db3c0cb97520ffec57c42d60f1f329ecc9471
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Thu Feb 21 10:01:27 2013 +0100

    unix: reduce line count, return uv__set_sys_error

commit 3f47a2da5c5b7f13d227fc99b760cc6a949f152a
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Thu Feb 21 09:56:33 2013 +0100

    unix: fail early on bad send_handle in uv_write2

    Return UV_EBADF if send_handle doesn't have a valid fd.

commit 26fa6f8031d35513857525197c8ec85e596d3fa7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 20 21:05:38 2013 +0100

    linux: fix abort() on epoll_ctl() race condition

    Don't check the return value of epoll_ctl(EPOLL_CTL_DEL). When the
    file descriptor is closed, we're potentially racing with another
    thread and that means the errno is not a reliable indicator of
    the actual error.

    The other event mechanisms (kqueue, event ports) are not affected
    because:

    * kqueue returns either EBADF or ENOENT. Both are handled by libuv.
    * event ports rearms all file descriptors on each call to port_getn().

    Fixes joyent/node#4558.

commit fd24a69c52b2b69dc89109d5acc624938832c0f5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 20 19:50:35 2013 +0100

    build: fix shared-after-static build

    Executing `make libuv.so` after `make libuv.a` failed because the
    libuv.a target compiled the files in src/ without -fPIC.

    Make the libuv.so target depend on files with a different suffix to
    keep them separated.

commit 7048a80613bb63066b0af15322e6bafa3f418c01
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 20 17:11:50 2013 +0100

    doc: document _LARGEFILE_SOURCE + _FILE_OFFSET_BITS

commit 30f628834782c1639b3a794212e8f6a4fb5a027a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 20 17:01:00 2013 +0100

    unix, windows: make uv_timer_get_repeat() const correct

commit 0cb9fbfe184e76ce8de6fe80556b9d74116b6c22
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 20 16:58:36 2013 +0100

    unix, windows: change timer intervals to uint64_t

commit d6bfedb8629d18a84c1e67d7073de56dabd540b8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 20 16:42:15 2013 +0100

    unix, windows: make uv_now() return uint64_t

    Using int64_t doesn't make sense here because the return value is never
    negative.

commit 6bf1a56e9d60737ef26509d9e304c03e008972d4
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Fri Feb 15 10:12:44 2013 +0100

    Return the errorcode provided by uv_set_artificial_error.

    This reduces the line count.

commit 7480974efeec4fe6795cfe6b3bd9e30777b2925f
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Fri Feb 15 05:26:08 2013 +0100

    Adhere to the naming conventions in uv_timer_* functions.

    In the src/*/timer.c code the first argument is called handle, not timer.
    We should be consistent in the interface definition file.

commit b6f72e54c46f2c5404b5c0ee79f9d4751e716dbe
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Feb 12 16:18:33 2013 +0100

    linux: fix O_CLOEXEC/O_NONBLOCK defines

commit da71649991029bcfabc429b26685bf17bb3d48d1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 10 17:30:18 2013 +0100

    unix, windows: make uv_fs_t.statbuf public

    Make the statbuf field public. This means you no longer have to use
    req->ptr - though that still works and will continue to work for the
    foreseeable future.

    Fixes #704.

commit fadfeaf6ecd4afce6e2781c74e5c7a4289eb524b
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Thu Feb 7 13:59:17 2013 +0900

    unix,windows: fix timer order in case of same timeout

    Compare start_id of timer handles when they have the same timeout.
    start_id is allocated with loop->timer_counter in uv_timer_start.

commit c15d4a7c6250a44fdfa0c6efab3ebcad359abc7d
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Fri Feb 8 14:48:52 2013 +0400

    stream: use kevent() information before accept()

    Limit number of syscalls by using backlog length information provided by
    kevent().

commit da33bba7c04e0873b457a9a4290bed2adf620154
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 6 23:24:49 2013 +0100

    darwin: make uv_cond_timedwait() clock skew safe

    Use pthread_cond_timedwait_relative_np() so we're not prone to spurious
    bugs caused by clock skew.

commit 5fa690397a254478c07bea44c64dfb29750a5c8f
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Wed Feb 6 22:57:02 2013 +0100

    win: Avoid using subversion to download gyp

commit d5dd7d0758a19be4a92883dd98669585fc880d72
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 6 20:38:16 2013 +0100

    darwin: merge uv_cond_timedwait implementation

    This is a revised version of commit 8311390.

commit 8d746ff72dfdc2d31f094ae421ae534a5f72edc3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 6 16:32:01 2013 +0100

    unix: remove scandir prototype workaround in fs.c

    It's not necessary for newer OS X releases and I don't care enough
    about OpenBSD to squelch the warning.

commit 60dd395a5b083b384d2fc39e195f411b75e97fc9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 6 16:04:46 2013 +0100

    Revert "darwin: merge uv_cond_timedwait implementation"

    Using mach_absolute_time() for the pthread_cond_timedwait() timeout
    breaks a number of tests on OS X 10.8.2.

    This reverts commit 8311390f13177f3086ecdac875115d2d4cc2688b.

commit 8311390f13177f3086ecdac875115d2d4cc2688b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 4 20:12:22 2013 +0100

    darwin: merge uv_cond_timedwait implementation

    Merge the OS X specific implementation of uv_cond_timedwait() with the
    generic one. The only difference is that it now uses mach_absolute_time
    instead of gettimeofday.

commit b271b0686de1d26da3ce7a8df4a4a0ec0d1eecf2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Feb 2 01:13:40 2013 +0100

    build: fix up WIN_SRCS

commit e14c77914ae1c9711c4028680e73c78afbdff9ab
Author: Joe Cheng <joe@rstudio.org>
Date:   Fri Feb 1 11:08:39 2013 -0500

    Fix building with RTools 2.15 toolchain

commit 7f3c7835831c9308ee3728883db0f77ab4dbf7df
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 31 15:27:13 2013 +0100

    unix: don't clobber errno in signal handler

commit 3759d71269c7549914639dce4bd14f69d28d8ec3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 04:16:26 2013 +0100

    win: get rid of early ipv6 support detection

    No longer explictly check wheter an IPv6 stack is present when the user
    tries to use IPV6 sockets. Instead realy on the operating system
    to report the lack of protocol support via appropriate error messages.

commit f21d94125eaac98da65c288e03ddc88e64f9e54f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 05:16:49 2013 +0100

    win/udp: DRY up setting SO_REUSEADDR

    This patch makes sure that only uv_udp_set_socket sets the SO_REUSEADDR
    bit for UDP sockets.

commit 3d779000b16f766f9fe5465fec970157740d0e06
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 04:12:01 2013 +0100

    win/udp: fix bug in getsockopt() return value check

commit 4f54053517a3fb6184fdd83a7ccc7a29044f5317
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 05:08:48 2013 +0100

    win/udp: make uv_udp_set_socket set UV_HANDLE_IPV6

    This patch makes uv_udp_set_socket responsible for setting the
    UV_HANDLE_IPV6 flag. It also fixes the problem that uv_udp_open would
    never set this flag at all.

    In addition, this patch fixes some minor style issues.

commit 40c60cfc54fe894d058ce712541c727115104ffe
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 04:11:28 2013 +0100

    win/tcp: make uv_tcp_set_socket set UV_HANDLE_IPV6

    This makes uv_tcp_set_socket responsible for setting the UV_HANDLE_IPV6
    flag. This fixes a couple of situations where the the fact that a socket
    is an IPv6 socket is not taken into account when deciding whether a call
    to SetFileCompletionNotificationModes is appropriate.

    It also fixes the issue that uv_tcp_open would never set this flag at
    all.

commit cfe14452ae97322939bdf1e1ffe608fc757c3968
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 03:52:32 2013 +0100

    win: fix uv_winsock_init crash when no IPv4 stack present

    uv_winsock_init() tries to create an IPv4 socket in order to detect
    if the system has any layered service providers (LSPs) installed.
    When creating this socket failed it would call uv_fatal_error and exit
    with the following message:

      socket: (10047) An address incompatible with the requested protocol was used.

    This patch fixes that. It also includes some minor style tweaks.

commit 00503d60674f6b4bd2600cb53683dd37655b8b16
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 02:46:51 2013 +0100

    win: add error mappings related to unsupported protocols

commit 98c79f3e0dc50a3571773e471967969513b110e4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jan 26 02:46:25 2013 +0100

    win: sort error code mappings

commit 40a9e119fffbb7c745c53a9c99e1e0bca45976e1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 29 16:58:47 2013 +0100

    build: fix up dependency rules

    * Auto-create build subdirectories.

    * Add coarse dependencies on header files so make rebuilds the sources
      whenever the headers change.

commit b607a7fed7934c507efa6d1ca08daee773214dac
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 29 16:47:47 2013 +0100

    linux: move files out of src/unix/linux

    Flattens the source tree and simplifies the Makefile.

commit 75dea933ebe6abce4157a8aa09590a6b80e9b9a5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 29 16:12:12 2013 +0100

    build: support out of tree builds

    Invoking make with builddir_name=/path/to/dir builds libuv in the
    designated directory.

commit 01fe4e73a695587d7aacbb1a6b998807b7917f64
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 29 14:39:41 2013 +0100

    build: add OS= make switch

    Overrides the platform detection heuristic. Useful for cross-compiling.

commit 93f61b7c3f64b2c0ed9c9818c9b46c214eb50cf1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 27 14:50:09 2013 +0100

    unix: fix style issues in udp.c

commit e4d8cbac7875449a6c4cf65d98d621738fbc21e6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jan 22 23:58:13 2013 +0100

    unix: support sending uv_udp_t handles over ipc pipes

commit cf1dc61317774ad4d0b61b392df7a6cbd862bb1b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 22 16:49:06 2013 +0100

    test: remove .travis.yml

    Travis CI was generating a lot of false positives (or rather, false
    negatives - tests that fail due to the environment they run in) and
    it's been in a continuous error state for days now.

    Remove it, we'll set up something ourselves.

commit 7841f77b2e36006f8469ab396c4c5560030fe64a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 22 16:15:58 2013 +0100

    build: don't export _POSIX_C_SOURCE on non-linux

    Don't export _POSIX_C_SOURCE to dependents. On the BSDs (and the
    BSD-ish, like OS X), it hides SysV and BSD definitions.

    The exception is Linux: _POSIX_C_SOURCE=200112 unlocks some of the
    newer pthreads features like spinlocks and barriers, so keep
    exporting it on that platform.

commit bdb498f8b1e61dd5a9ed6263fabe159c2ed0c401
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Tue Jan 22 14:13:26 2013 +0100

    unix, windows: return UV_EINVAL, not UV_EFAULT

    A wrong multicast membership should return EINVAL.

commit 017e2d5fde0c22d959b0890abb4b614ebf7630f3
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Fri Jan 18 01:38:06 2013 +0100

    unix, windows: make uv_*_bind() error codes consistent

    Just like uv_tcp_connect() it should return an EINVAL when the handle
    is of an invalid type or when the network address is faulty.

commit 372ac34d5f80412c09cc40a4e3b72379afa7f637
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 17 18:34:02 2013 +0100

    linux: translate futimes() fallback error codes

    The fallback added in 9d4a16e uses the /proc filesystem to emulate
    utimensat().

    Translate error codes that indicate no procfs is mounted to ENOSYS.
    Letting those error codes through unchecked will only confuse callers.

commit 358957cdec34cc2c7c0116637e624800b0e5e36a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 17 16:39:04 2013 +0100

    doc: update gyp build instructions

commit 9d4a16eefe9d579d0c4eafaa3124f78c7ad526ec
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 17 14:19:58 2013 +0100

    linux: add futimes() fallback

    The utimensat() syscall was added in 2.6.22. Add a fallback mode for
    older kernels that uses utimes("/proc/self/fd/<fd>").

    Fixes #687.

commit 629a59b35b1af797a1571559105aef8df613c8cf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 17 01:26:41 2013 +0100

    linux: use stdint types in structs

    Use the typedefs from stdint.h to avoid build breakage on systems
    where __u64 and friends are hidden when --std=c89 is in effect.

    Fixes #685.

commit e7f384f8532493b52916968a8b9e995e534e6b7b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 16 23:59:57 2013 +0100

    test: make threadpool tests valgrind-compliant

    Delete the event loop after the test to stop valgrind from complaining
    about memory leaks.

commit 4ba03ddd569bdd361b1498d5f19ec0075db01500
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 16 23:20:03 2013 +0100

    unix, windows: rename uv_run2 to uv_run

    This changes the prototype of uv_run() from:

      int uv_run(uv_loop_t* loop);

    To:

      int uv_run(uv_loop_t* loop, uv_run_mode mode);

    Where `mode` is UV_RUN_DEFAULT, UV_RUN_ONCE or UV_RUN_NOWAIT.

    Fixes #683.

commit 4cbd5c7b32095356ac7dd34beea7e09c430650fc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 16 00:29:16 2013 +0100

    test: remove bad tcp_write_error test

    It makes the assumption that if you try to write to a localhost socket
    often enough, eventually its send queue will fill up - which doesn't
    happen if the machine it's running on is fast enough.

commit 768b5246398ccc273a98f27ff0b3c3617df69eb0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 14 16:53:35 2013 +0100

    unix: make stream.c more DRY

commit c931e317465b7edf39bd127f747538d2b3af0b53
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 14 11:32:54 2013 +0100

    unix: make assertion message more descriptive

commit 8e3e60ffbf204d78b3cc8e23bb3e0b8385442467
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 13 00:51:27 2013 +0100

    linux: only pack struct uv__epoll_event on x86_64

    On i386, it does not need packing; it's 12 bytes packed or unpacked.

    On ARM, it's actively harmful: the struct is 12 bytes when packed and
    16 bytes when unpacked.

commit 9cd9bd33b47530e191bdee39bb6a9e5d33ee6053
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 13 00:50:57 2013 +0100

    build: fix host/target arch detection

    Setting the target_arch without setting the host_arch as well was
    effectively broken.

commit 9aab5d483794be45e9db0ceb9dbee3e9b6f199f5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 11 13:26:29 2013 +0100

    Revert "unix: improve uv_guess_handle() implementation"

    This reverts commit 98bcddc8dddb4b85425d846f546e81e8ccf633f8.

    It's making a lot of tests in the node.js test suite fail.

commit fc42885d0ebb877864f989a0a78ed3b4125448aa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 11 13:39:28 2013 +0100

    unix: set closed fd to -1, avoid double close bugs

    * abort() if close() fails
    * set fd to -1 after close() to prevent double close bugs

commit 2ec2a5194fd65addbf1995992e91712719c532c9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 11 13:03:47 2013 +0100

    unix: clean up code in process.c

commit 6f679a4ff7bd332eb601e11a7d815311e22612c5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 11 12:57:04 2013 +0100

    unix: don't swap stdin file descriptors

    Bug introduced in 47f496a. It turns out the file descriptors of the
    stdin pipe don't have to be swapped around.

commit 2cecd0d3d1b2b99bbe35d5eb1f9ac2c70f136e23
Author: Bruce Mitchener <bruce.mitchener@gmail.com>
Date:   Thu Jan 10 16:59:25 2013 +0700

    include: fix typos in comments

commit 80f6a9c643f56521731a7f51b65100fbc8913c39
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 10 01:20:05 2013 +0100

    unix: omit second fcntl() call if possible

    Omit the fcntl() syscall when the O_NONBLOCK or FD_CLOEXEC is already
    set/clear because it's a no-op in that case.

commit 9eedd32e409b51ed342d4c91530af38681743927
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 9 17:24:20 2013 +0100

    build: make clean target remove libuv.{a,so,dylib}

commit bc0c61cd7fa9cc5b991f8def6afb5fab9d1baa95
Author: Tim Bradshaw <tfb@cley.com>
Date:   Thu Dec 20 22:26:34 2012 +0000

    linux: ensure that all CPUs have model information

commit 98bcddc8dddb4b85425d846f546e81e8ccf633f8
Author: Ben Leslie <benno@benno.id.au>
Date:   Sun Dec 9 13:26:14 2012 -0500

    unix: improve uv_guess_handle() implementation

    uv_guess_handle is currently squelching both fifo and all
    sockets on to the UV_NAMED_PIPE type. Rather than treating
    all sockets as UV_NAMED_PIPE, use getsockopt() and
    getsockaddr() to determine if the socket is an AF_UNIX
    stream (in which case return UV_NAMED_PIPE), or an AF_INET
    stream (in which case return UV_TCP), or an AF_INET datagram
    socket (in which case return UV_UDP).

    Additionally, currently all other file descriptor types are
    squelched to the UV_FILE type. Instead, only file descriptors
    that are marked as regular files are treated as UV_FILE. All
    other types (such as directories, character and block devices)
    are now treated as UV_UNKNOWN_HANDLE.

commit cb3c448d8f3ec8c361d181db373c6c65b4d90b7d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 7 15:42:28 2013 +0100

    unix: fix GNU-ism introduced in edd1007

    Don't use features.h, it's only available on GNU/glibc systems.

commit f24335d4984bfff7f9bbc82cbe7fb2217d0c3933
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 22:31:15 2013 +0100

    test: fix #if defined checks

    Same as edd1007 but this time for the tests.

commit fb725c08938fbd81ee7fc538031103149deffbf9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 22:27:40 2013 +0100

    test: simplify tcp_ref2b

    Said test doesn't need its own close callback, it can piggyback on the
    common close callback.

commit ccb96b67dfddfbb21faf0a48a080c0ee79ac16ba
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 22:06:10 2013 +0100

    test: remove unused function declaration

commit 847182cdf1a4fd3cf2f6cecac53ab12e138347e7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 21:50:00 2013 +0100

    test, bench: make functions/variables static

    Make functions and variables that are local to the compilation unit
    static. Remove what turns out to be unused.

commit 7ff6f29b85484c20040dbdccaa8faaf3026a9ccb
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 20:01:22 2013 +0100

    test, bench: ANSI-fy function prototypes

    Replace `void f()` with `void f(void)`; the former means "a function
    that takes any number of arguments, including none" while the latter
    is what is actually intended: a function taking no arguments.

    The first form also isn't strictly conforming ANSI/ISO C.

commit fa9c577e55d7c845d0134acf13b10035b8e2b492
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 21:46:08 2013 +0100

    linux: fix race in uv_resident_set_memory()

    uv_resident_set_memory() used a global buffer to read data into, which
    is a decidedly unsafe thing to do in a multi-threaded environment.

commit 5b63285805c82af043ba72bef4455aa3a98b20e2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 20:21:13 2013 +0100

    unix, windows: ANSI-fy uv_tty_reset_mode() prototype

commit edd10071eb86cdc741c6652a38eff0b4d6be561e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 21:41:12 2013 +0100

    unix: fix up #if defined checks

    `#if FOO` (where FOO is undefined) is a legal construct in C89 and C99
    but gcc, clang and sparse complain loudly about it at higher warning
    levels.

    Squelch those warnings. Makes the code more consistent as well.

commit e62dd3caa0679e44d6d78d020ee2858ee279e571
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 20:19:52 2013 +0100

    unix: fix include in cygwin.c

commit a2bedc0a7ea3ead6712f00777a10435040947c93
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 20:02:49 2013 +0100

    unix: make uv__read_start_common() static

commit 35b159a83e659b818cea1584e27a4e36c8207216
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 19:49:10 2013 +0100

    unix: make uv__work_cancel() static

commit 0a06c2f3b2f42e9a9ae57331d9d5d68e54f00670
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 19:45:11 2013 +0100

    unix: fix up function prototypes in signal.c

commit 87cbf8d0c2cbf438dabb3620c06997ebe27f71f4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 19:43:37 2013 +0100

    unix: remove unused function uv__strlcpy()

commit 345eb6394f47d3429805c8e595cf5c607929e2da
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 21:07:46 2013 +0100

    unix: add checksparse.sh script

commit 1f52fc1c5a3961329530810327c7f69f6e022c8a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 19:19:20 2013 +0100

    test: remove consumer_producer test

    It fails intermittently on Travis for no other reason than that Travis
    is occasionally slow. Reduce the number of false positives, remove the
    test.

commit 2f55353490506ed08709c65205bedeb67342b194
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 17:55:51 2013 +0100

    unix: update loop->time after poll

    Fixes a bug where timers expire prematurely when the following
    conditions hold:

      a) libuv first spends some time blocked in the platform poll function
      b) a callback then calls uv_timer_start()

    Cause: uv_timer_start() uses an out-of-date loop->time in its
    'when should the timer callback run?' calculations.

    Solution: Update loop->time before invoking any callbacks.

    Fixes #678.

commit 339033afc01d7ddc14ed3cca1c660c6f8b5e520d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jan 6 17:25:59 2013 +0100

    unix: use uv__hrtime() internally

    This commit renames the various uv_hrtime() implementations to uv__hrtime().

    Libuv uses the high-res timer internally in performance-critical code paths.
    Calling the non-public version avoids going through the PLT when libuv is
    compiled as a shared object.

    The exported uv_hrtime() now has a single definition in src/unix/core.c that
    calls uv__hrtime().

    A future optimization is to lift the uv__hrtime() declarations into header
    files so they can be inlined at the call sites. Then again, linking with -flto
    should accomplish the same thing.

commit ba83510fc0f7c4a1f1d236dfa584ba55b30e95c6
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Wed Jan 2 12:53:18 2013 +0400

    stream: fix infinite select() polling on osx

    Interruption FD buffer should be emptied after write, otherwise select()
    loop will poll indefinitely.

commit 775f2c1f539c783728f7e4dd039f5e6c6f794fb9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 2 17:47:37 2013 +0100

    unix: remove stale closing check in uv__write()

    Introduced in 0db3274f but no longer necessary; uv__write() no longer
    runs when the handle has been closed. Write callbacks receive a special
    status code that informs them that the handle has been closed.

commit a657e7f5760add177e8eae59dbed3cd14cc2ee1e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 2 17:45:37 2013 +0100

    unix: remove uv_write_queue_head()

commit 0b3ab72579458bb68e810b3bd257efe05d6f275d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 2 17:15:52 2013 +0100

    unix: remove bogus uv__write() comment

commit 546387fc47fc0a789eeec97b7f71bcf0c00a7108
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Dec 28 22:17:51 2012 +0100

    include: add note about SIGRT0 and SIGRT1 on linux

commit 92a19a19dd87f7dfeaf7aaf893099d0afd4a182f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Dec 28 15:10:04 2012 +0100

    unix: ensure done_cb gets called after uv_cancel()

    Wake up the event loop with uv_async_send() when a request is cancelled.
    Ensures the done_cb is run on the next tick of the event loop.

    Not sending a wakeup signal results in the done_cb not getting called until
    another request completes, which may be a long time coming when it's the only
    request in the queue or when other requests are executing long-running jobs.

    Fixes #669.

commit 9614d5113526ba82bc8522b0b1c9a119e45932d3
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Thu Dec 27 23:15:40 2012 +0100

    unix: reset errno when using sendfile emulation

    A common way to check if a uv_fs_t request failed is to check that
    req->errorno != 0.

    With uv_fs_sendfile(), when the sendfile() syscall fails, req->errorno is set
    to (for example) ENOTSOCK, even when the emulation code path succeeds.

    Zero errno before the call to uv__fs_sendfile_emul() to prevent that from
    happening.

commit 69ab328d9f387d029272fa4aee06ea72e7c9878e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Dec 27 13:04:03 2012 +0100

    sunos: fix !defined(PORT_SOURCE_FILE) build

commit 3164f1ea69277ff42d959c9f3554406160db2976
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Dec 25 21:51:15 2012 +0100

    include: update uv_signal_t doc comments

    Fixes #668.

commit 495ac8340285594aacaab4d9857b4f8eb1aa605c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Dec 24 23:34:58 2012 +0100

    build: export _DARWIN_C_SOURCE to dependents

    Exporting just _POSIX_C_SOURCE=200112 hides SysV / BSD definitions like
    S_IREAD and S_IWRITE. Exporting _DARWIN_C_SOURCE fixes that.

    Issue reported by Travis Tilley.

commit 4650a5971b8229f612e057e7835865b487724206
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Mon Dec 24 12:55:28 2012 +0100

    unix: don't run loop when all handles are unref'd

commit 33d5c497a6fdd0815144ff61f3d28f33281a11ba
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Fri Nov 30 00:32:04 2012 +0100

    prepare/idle/check: don't allow NULL callback

commit 5af43ba446d68b5d26c48facdc1905454d185b49
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Dec 24 12:03:41 2012 +0100

    bench: add 'million async handles' benchmark

commit 1c722d6c222d80e550d948a77f318083e69efdc4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Dec 24 12:03:25 2012 +0100

    test: make fmt() not leak memory

commit 4b115f89bf54275ea695df2b872f34567b993ff3
Author: Vlad Tudose <vlad.tudose@intel.com>
Date:   Tue Dec 18 20:13:10 2012 +0200

    build: build libuv.a and libuv.so in different dirs

    Fixes #659.

commit 6fb31493d76381bd0e597400da65cbfd33b89ff9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Dec 19 15:29:27 2012 +0100

    build: export _POSIX_C_SOURCE=200112 to dependents

    Fix direct_dependent_settings to export _POSIX_C_SOURCE=200112 to dependent
    projects. Required to make pthread_rwlock_t and pthread_barrier_t visible.

commit 0820be70084a44792d96cfbd80b6e97159c44439
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Tue Dec 18 16:10:11 2012 +0100

    Implemented uv_run2

    Allows for running the event loop in 3 modes:
      * default: loop runs until the refcount drops to zero
      * once: poll for events only once and block until one is handled
      * nowait: poll for events only once but don't block if there are
        no pending events

commit dc559a5ce69cef28e1c73a3782c17b5801989e67
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Dec 18 15:35:42 2012 +0100

    unix: disable relaxed accept() by default

    Don't use the relaxed accept() algorithm introduced in be2a217 unless
    explicitly requested. It causes a 50+% performance drop on some node.js
    benchmarks:

      $ alias bench='out/Release/node benchmark/http_simple_auto.js \
        -c 10 -n 50000 bytes/1 2>&1 | grep Req'

      $ UV_TCP_SINGLE_ACCEPT=0 bench
      Requests per second:    12331.84 [#/sec] (mean)

      $ UV_TCP_SINGLE_ACCEPT=1 bench
      Requests per second:    3944.63 [#/sec] (mean)

commit b86ed94940f85b60f033c1f4a0c015a6d4de297c
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Mon Dec 17 17:03:44 2012 +0400

    kqueue: ignore ENOENT error

    File descriptor might be closed during callback, all events that was reported
    before the callback are not valid and trying to remove them will result
    in ENOENT. This error can be safely ignored.

commit 273cecc56ff54d1c6f2537d61838052719db0cb9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Dec 15 21:13:41 2012 +0100

    unix: don't memset(0) in uv_udp_init()

    It's inconsistent with other init functions. In particular, it clobbers the
    data field.

    Fixes #655.

commit c6c5b7a901d26b727acf6cdc7e6c970b18310248
Merge: a3b57dd 4997738
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Dec 14 12:07:31 2012 +0100

    Merge branch 'v0.8'

commit 49977386e93dcdf7c0f0044a491c98d551f61db4
Author: Andrew Shaffer <darawk@gmail.com>
Date:   Wed Dec 12 19:47:58 2012 -0800

    sunos: properly disarm PORT_LOADED fsevent watcher

    Fixes a segmentation fault when the watched entity is changed after the watcher
    has been closed.

commit a3b57dd5987cf6637e477443c4bb761c6e9c2f9b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Dec 14 11:45:39 2012 +0100

    test, bench: remove unused includes

commit f5b6374948447c6ee5cf399d6b50a1e4d8a11723
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Dec 14 11:36:17 2012 +0100

    test, bench: replace strlen() with sizeof()

commit 0a05b31a9300477bede0278fdfc540802a10d1d7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Dec 14 11:34:17 2012 +0100

    test: fix -Wunused-result warnings

commit e079a99abddb30a7f935792eda003b5ce37b396b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Dec 13 16:37:12 2012 +0100

    unix: fix event loop stall

    Fix a rather obscure bug where the event loop stalls when an I/O watcher is
    stopped while an artificial event, generated with uv__io_feed(), is pending.

commit 92fb84b751e18f032c02609467f44bfe927b80c5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Dec 12 15:12:20 2012 +0100

    unix: rework uv_cancel() api

    Bert Belder informs me the current approach where a request is immediately
    cancelled, is impossible to implement on Windows.

    Rework the API to always invoke the "done" callback with an UV_ECANCELED error
    code.

commit 731adacad2426d349d4c51ca608184f7e01c93c6
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Thu Aug 16 20:26:35 2012 +0700

    unix: use select() for specific fds on OS X

    kqueue(2) on osx doesn't work (emits EINVAL error) with specific fds
    (i.e. /dev/tty, /dev/null, etc). When given such descriptors - start
    select(2) watcher thread that will emit io events.

commit 52c8a8617de020a14b87477a15ddaf107ff34445
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 26 03:12:38 2012 +0100

    unix: add uv_cancel()

commit a385ae4f59aeb10b24e60c3d6880a38a645635bd
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Dec 9 13:21:20 2012 +0100

    unix: only set SO_REUSEADDR on tcp listen sockets

    Avoid the extra syscall, it's a no-op for non-listening sockets.

    At least, it should be - it remains to be investigated if a FreeBSD kernel bug
    affects ephemeral port allocation inside connect(). See [1] for details.

    [1] http://www.freebsd.org/cgi/query-pr.cgi?pr=174087

commit b4168cd697380af2526ec2f0f02e3d28253bf4ae
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Dec 8 08:06:09 2012 +0100

    build: rename LINKFLAGS to LDFLAGS

commit 7306c5ff46e165d5fafaace99fc0259bfd3ec17c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Dec 8 08:00:03 2012 +0100

    build: fix `make libuv.so CFLAGS=<options>`

    Running a make target that builds the shared object while overriding the CFLAGS
    variable from the command line, would fail with a relocation error:

       relocation R_X86_64_32 against `.text' can not be used when making a shared
       object; recompile with -fPIC

    Fix that by adding -fPIC unconditionally.

commit 527a10f904286c3b28df85308f28181131475b64
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Dec 4 14:04:37 2012 +0100

    windows: improve / fix uv_interface_addresses

    * If GetAdaptersAddresses() failed, it would return UV_OK nonetheless,
      but the `adresses` and `count` out parameters would not be set.

    * When adapters were enabled or added in between the two
      GetAdaptersAddresses() calls, it would fail.

    * In case of an out of memory situation, libuv would crash with a fatal
      error.

    * All interface information is now stored in a single heap-allocated
      area.

commit c7fca7ad848da7d30f2859bd8fdec5bb454454d5
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Dec 3 17:03:22 2012 +0100

    windows: add some error code mappings

commit 2e4488f35af8e9a0ae07418c162c905aa8ea8ceb
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Dec 4 14:04:37 2012 +0100

    windows: improve / fix uv_interface_addresses

    * If GetAdaptersAddresses() failed, it would return UV_OK nonetheless,
      but the `adresses` and `count` out parameters would not be set.

    * When adapters were enabled or added in between the two
      GetAdaptersAddresses() calls, it would fail.

    * In case of an out of memory situation, libuv would crash with a fatal
      error.

    * All interface information is now stored in a single heap-allocated
      area.

commit 0f0fee548cab8b5f88c031fe72cc52cac65c3ca4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Dec 3 17:03:22 2012 +0100

    windows: add some error code mappings

commit 44f0fcd033faf56d50dcf638a1e535e7918ea65c
Merge: 99a8d4a deb1c34
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 29 23:34:43 2012 +0100

    Merge branch 'v0.8'

    Conflicts:
    	src/unix/core.c

commit deb1c34774e19272cfed683697c6961726582555
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 29 23:24:25 2012 +0100

    sunos: fix uv_getaddrinfo() NULL pointer dereference

commit 99a8d4a8c2aba74e541707ca8ab10d96bdc3a190
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 29 16:51:01 2012 +0100

    unix: remove unnecessary static var init

    wq doesn't have to be initialized, init_once() takes care of that.

    Remove the initialization so it goes into .bss instead of .data.

commit fa11db905a01f95fc01833d94987fe5790796745
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Mon Nov 26 11:35:29 2012 +0900

    test: fix finished consumer number check

commit 2be240d3cd938c95699de5cc71963b1fcc47de4d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 29 15:34:33 2012 +0100

    unix: initialize thread pool mutex and condvar

    It accidentally worked before this commit on Linux but not on OS X.

    Fixes #637.

commit 3a3025861673472b877ae0e60f8ae4e441c38266
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 29 15:22:39 2012 +0100

    windows: fix uv_backend_fd() return value

    uv__new_artificial_error() returns a uv_err_t, not an int, and we can't use
    uv__set_artificial_error() because the uv_loop_t argument is const.

commit df1399fa758e34bf1d4c2c1c0e624a96a983857b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 28 21:32:04 2012 +0100

    Remove *.mk and *.Makefile from .gitignore list

    The *.mk and *.Makefile files generated by gyp are stored in $TOPLEVEL/out now.

    Fixes #636.

commit 4a69c4bb5f2ba4c26512ac5828fff1201e0a7152
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 28 17:01:04 2012 +0100

    unix: change uv_backend_timeout() prototype

    * change return value to signed int
    * constify loop argument

commit 09a7f85b704f5053ca8c7f74c0f469921262743a
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Mon Nov 26 14:20:11 2012 +0400

    unix: add uv_backend_fd() and uv_backend_timeout()

    This can be used in conjuction with uv_run_once() to poll in one thread and run
    the event loop's event callbacks in another.

    Useful for embedding libuv's event loop in another event loop.

commit 5d92ccce9466dbfe8a613d0ee5ded1a959014554
Author: Shane Holloway <shane.holloway@ieee.org>
Date:   Tue Nov 27 16:48:01 2012 +0100

    windows: add flag for hiding windows created by a spawned process

    Closes GH-627

commit 99d3102b90f135e4560217131512948e74060d16
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 26 02:07:25 2012 +0100

    unix: drop pthread dependency in threadpool.c

    Replace the pthread code with their libuv counterparts. One step closer to a
    shared thread pool implementation.

commit 0cca5391ba8513d22f1c9cdc4a462f6dfd7230c5
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Sat Nov 24 08:25:32 2012 +0900

    unix, windows: disallow NULL worker in thread pool

    See #629.

commit 90271e1a3cf69cb56b55b37712d84b17e375cea2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 22 17:51:54 2012 +0100

    darwin, freebsd: set SO_NOSIGPIPE on sockets

    Suppresses delivery of SIGPIPE signals when the remote end of the socket has
    gone away.

commit dcd3b55c1990342054083272f3ad7f866832d270
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 22 15:01:15 2012 +0100

    unix: fix thread pool race condition

    Send the wakeup signal to the main thread *before* releasing the lock. Doing it
    the other way around introduces a race condition where the watcher may already
    have been pulled off the work queue.

commit 5639b2f1f904893987cf3bdc965bc24c66b4c6e2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 20 23:58:22 2012 +0200

    linux: use /proc/cpuinfo for CPU frequency

    Obtain the CPU frequency from /proc/cpuinfo because there may not be any
    cpufreq info available in /sys. This also means that the reported CPU speed
    from now on is the *maximum* speed, not the *actual* speed the CPU runs at.

    This change only applies to x86 because ARM and MIPS don't report that
    information in /proc/cpuinfo.

    Fixes #588.

    This is a back-port of commit 775064a from the master branch.

commit fc5984fb45b2d23b3985cf56f33d517fbc86e742
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 20 02:38:01 2012 +0100

    build: fix dragonflybsd gyp build

    Depends on a not-yet-landed gyp patch: https://codereview.chromium.org/11348152/

commit d8a8379751ffc5ea4d4c0b5e15398de5f922ae19
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 20 00:42:47 2012 +0100

    test: disable fs event test on dragonflybsd

    Disable the fs_event_close_in_callback test on DragonFlyBSD, like we do on the
    other BSDs.

    The test doesn't work with kqueue-based file notifications, the event is
    generated before the file is watched. Maybe we should remove it altogether.

commit e997dd5981024a5af13abea5592f1cc5572e43b0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 20 00:38:24 2012 +0100

    dragonflybsd: fix uv_fs_futime()

commit 5aa62980995ec912ac94634c7e8acc199178ea12
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 20 00:26:56 2012 +0100

    dragonflybsd: make uv_cpu_info() less broken

commit 172d495bb8ca92494045382e3c516f706ab008de
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 19 23:57:27 2012 +0100

    build: fix dragonflybsd build, link with libkvm

commit 3e9344fd3464035e774a370b1ceaa06eafe45e89
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 19 23:53:41 2012 +0100

    build: remove unused EV_CONFIG var

commit 190db15638ef7f9eebf0b5160313991898480d7f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 19 03:57:24 2012 +0100

    unix: set proper loop errno for udp write req cb

    Harmonize with stream.c and tcp.c: when a handle is closed that has pending
    writes queued up, run the callbacks with loop->err.code set to UV_ECANCELED,
    not UV_EINTR.

commit 665a316aa9d551ffdd00d1192d0c3d9c88d7e866
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Aug 23 01:57:30 2012 +0200

    unix: remove libev

commit 65bb6f068e607558b2e1c65b8e374bd2144c8d4e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 15 23:53:18 2012 +0100

    unix: rename UV__IO_* constants

commit 1282d64868b9c560c074b9c9630391f3b18ef633
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Aug 23 01:14:41 2012 +0200

    unix: remove dependency on libev

commit 59a2c639316bd23f738c78147dd79ad4b61b3cf1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 15 22:58:14 2012 +0100

    bench: remove dead and buggy code

    Pipe accept benchmarks have never been implemented, remove the code path.

    Said code path also contained a bug: it tried to bind to the same pipe that is
    bound to a few lines down.

commit a28bc887080a1f511a82a62d0ef2cc3ab0df38f5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 15 22:16:08 2012 +0100

    bench: print benchmark name in async/async_pummel

commit 05aac92913dd40340c8d4f46327fa8f23402f341
Author: Stephen Gallagher <sgallagh@redhat.com>
Date:   Thu Nov 15 12:04:11 2012 -0500

    include: export uv_inet_* functions

commit c252bcb3f02d2faf54f8a241c60f36d97495bcbc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 14 01:35:27 2012 +0100

    bench: fix loop starvation bug

    Don't keep writing until the write queue fills up. On fast systems (mine), that
    never happens - the data is sent out as fast as the benchmark generates it.

commit 72955c29c21c889dbb03ec2c7f490d27cc5abd1d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 14 01:06:03 2012 +0100

    windows: map WSAESHUTDOWN to UV_EPIPE

    This is a back-port of commit 483043b from the master branch.

commit 09b022232aaddce1ee9def7092538734415f386c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 13 16:05:38 2012 +0100

    bench: report proper benchmark name

commit b9c8d196379dc28a9ed503a2695581d6698ba466
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 13 15:56:46 2012 +0100

    bench: close timer handles before deleting loop

    Fixes a segmentation fault / use-after-free.

commit 3243e9ae673bf7e3c2b19bc1b0d2c61cbc535fb5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 12 17:50:29 2012 +0100

    test: fix (harmless) typo in function name

commit 625340066ebad876bb46ff3165b3b6fb23168dc0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Nov 11 01:16:51 2012 +0100

    test: fix close of uninitialized handle

    The test closes all handles after 1000 ms but the remote peer handle may not
    have been initialized by then (very unlikely but not quite impossible).

commit 0a7e36dcf1fa3d8669556eb0d88577116c9330d2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Nov 10 18:50:57 2012 +0100

    test: add UV_RUN_AS_ROOT check

commit 62332ea09049b6db94c019856714dcaf10434aee
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Nov 10 01:31:52 2012 +0100

    build: fix `make test` on darwin and sunos

commit f352e40e00a4f7b27e77f2d3e22bed3461a891c1
Merge: bef3ea4 deeec42
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 9 20:39:52 2012 +0100

    Merge branch 'v0.8'

    Conflicts:
    	test/test-spawn.c
    	uv.gyp

commit deeec421afed1fa44961204d2e0a17134f3ea02a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 9 20:20:50 2012 +0100

    build: use link_settings, fix typo

    * Use link_settings instead of direct_dependent_settings.
    * Fix typo: s/ldlags/ldflags/

    Pointed out by a certain R.L. Dahl of San Francisco, CA.

    Fixes #618.

commit bef3ea48184b0d6b68e7636e21e72a07a66eefe9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 9 03:51:47 2012 +0100

    bench: squelch -Wstrict-aliasing warnings

commit d6b7fe0e3b02bae7f8ca73706522755bb35ae699
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 9 03:21:00 2012 +0100

    unix: squelch -Wunused-but-set-variable warnings

commit 20eaa84c4fe94525cbc9bca06ad0cf71d2854ad9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 9 02:15:17 2012 +0100

    build: link test runner with -rpath

    Link the test runner with -rpath=/path/to/libuv.so, don't muck around with
    LD_LIBRARY_PATH.

commit 2d1f17fecbdc40370e9daa39dc351fcd5e47164c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 9 01:57:58 2012 +0100

    test: work around valgrind bug

commit 43d52c77baa48263543d685d0de8504005cd83ca
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 8 18:28:16 2012 +0100

    test: make `make test` link against .so

commit cc36fd036606a3dec452b6e40ded41db6e5bf322
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 8 18:06:14 2012 +0100

    build: support building a .so

    This commit adds support to the regular Makefile as opposed to the gyp build.

commit d56434a21d9e972df1303495440f3bc4f0476da2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 6 16:24:49 2012 -0500

    build: support building a .so

    You can now select to build a shared object at configure time:

      $ ./gyp_uv -Dcomponent=shared_library -Dlibrary=shared_library

    And build it with:

      $ make -C out BUILDTYPE=Debug # or BUILDTYPE=Release

    Or, if you use ninja:

      $ ninja -C out/Debug

commit e318b06a0ef58b09273e06dfd025fd8a2af9ed1a
Author: Stephen Gallagher <sgallagh@redhat.com>
Date:   Wed Nov 7 10:04:04 2012 -0500

    include: split off libev function prototypes

    This patch creates a new header - ev-proto.h - which contains all of the
    protoypes for libev functions. This allows us to create a shared object of
    libuv without exposing libev internal functions.

commit 91faa3e688484783b720c66ce48e3d2404e0aeb7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 7 16:12:22 2012 +0100

    test: fix compiler warning

    Fix the following warning by not using a static variable:

      test/test-fs-poll.c:79: warning: ‘static’ is not at beginning of declaration

commit a7cedbe2204b410414e2f17f00c698d2be2f66ed
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 7 16:10:55 2012 +0100

    darwin: fix uv_hrtime() thread safety issue

commit 0097280624a81715a543c3a7076d2011e2daf846
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Nov 7 11:10:43 2012 +0100

    windows: map ERROR_GEN_FAILURE to UV_EIO

commit f372fd4b13cea4c40c82c0544560807ad15e8641
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Nov 7 11:10:43 2012 +0100

    windows: map ERROR_GEN_FAILURE to UV_EIO

commit a320d464409b5008d920c7c78caf413d94e265aa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 6 21:41:21 2012 +0100

    test: fix type casting style issue

commit 2affa60e19f6fa56166f63003285156a2ff0dfc0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 6 00:31:16 2012 +0100

    test: remove unnecessary #ifdef _WIN32

    This is a back-port of commit 4d17337 from the master branch.

commit 7759bd63cdad2e2b6065fe0786dff66afe761373
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Nov 6 00:31:16 2012 +0100

    test: remove unnecessary #ifdef _WIN32

commit 4c9e42d0e6462597aedd1cce885394cf0a2e4edf
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Nov 5 22:11:22 2012 +0100

    windows: un-break the build

    It was broken in fb64948.

commit 6620e614aca1dd8303bbd5605a5bee000d93d00a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Nov 5 22:11:22 2012 +0100

    windows: un-break the build

    It was broken in 1d85815.

commit 0ddf9d6b98c32254b577d3d8516f7ba674222557
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Nov 4 01:17:22 2012 +0100

    Revert "unix: use select() for specific fds on OS X"

    This reverts commit 5da380a5ca7f9ef02667ef3021fc97428df0b478.

    Contains a bug that effectively makes the select() thread busy-loop. The file
    descriptor is polled for both reading and writing, regardless of what events
    the main thread wants to receive. Fixing that requires proper synchronization
    between the two threads.

    See #614.

commit 20bb1bfd70499866acb64ea958b7d192b00120a2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Nov 4 01:07:14 2012 +0100

    Revert "unix: reopen tty as /dev/tty"

    This reverts commit 31f9fbce6321e2a26ab6d6c2d404aba1a7f161a7.

    The reverted commit depends on commit 5da380a ("use select() for specific fds
    on OS X") which polls /dev/tty file descriptors in a separate thread to work
    around deficiencies in the kqueue API on OS X.

    Unfortunately, 5da380a has a bug that effectively makes the select() thread
    busy-loop. Revert this commit for now.

commit b5fc9444b1276aba53d3730b3f515a5ab5653027
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Nov 4 00:56:40 2012 +0100

    build: export _LARGEFILE_SOURCE, _FILE_OFFSET_BITS

    Export compile-time defines that influence the size of struct stat.

    This should avoid sizeof(struct stat) mismatches between libuv and dependent
    projects.

    On OS X, _DARWIN_USE_64_BIT_INODE=1 is also exported.

commit 914185d6fc2ffd899c9c1ce4b52e1bf6d75ce6aa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Nov 3 02:06:37 2012 +0100

    unix: make some internal methods static

commit fb649487465d8ed5504302649b69fc72c879acc1
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Thu Nov 1 10:55:06 2012 -0400

    unix: do not set environ unless one is provided

    Currently, `uv_spawn` will set `environ` to the value of `options.env`, even if
    `options.env` is `NULL`.  This results in child processes for whom `environ ==
    NULL`, which can cause a variety of unexpected issues.

    This is a back-port of commit 1d85815 from the master branch.

commit 1d858156b431f2e4952dc79049cfd34947b805d1
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Thu Nov 1 10:55:06 2012 -0400

    unix: do not set environ unless one is provided

    Currently, `uv_spawn` will set `environ` to the value of `options.env`, even if
    `options.env` is `NULL`.  This results in child processes for whom `environ ==
    NULL`, which can cause a variety of unexpected issues.

commit dcce1eab3b02f7b0430e5349465fc0025b8a8b52
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 2 14:34:28 2012 +0100

    test: fix -Wmissing-field-initializers warnings

commit 894a8523cb0b363dbcca404a758d1af551298e3c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 2 14:32:14 2012 +0100

    test: fix signed/unsigned comparison warnings

commit 9c7ae2e7a334d48909f5f6cfd873db968431a4d5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 2 14:15:07 2012 +0100

    darwin: don't use deprecated AbsoluteToNanoseconds

commit be597ba6257c70f522f3246772f88d4308a0e2a0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 2 12:00:28 2012 +0000

    unix: set req type to UV_FS

commit b0bcbdfe81c6343f64d83b3ba717d49714196d4d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 1 15:51:04 2012 +0100

    unix: NULL pipe_fname in uv__pipe_close()

    Pro-actively avoid use-after-free errors, set the pipe_fname field to NULL.

commit b8aa5b9bf25648395050d9ec20d488a24306a3d8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 1 15:29:00 2012 +0100

    test: don't assert on UV_EPIPE in echo-server.c

    UV_EPIPE is not an error per se, it simply indicates that the other end of the
    connection - i.e. the test case - has gone away.

    Pro-actively ignore UV_ECANCELED errors. They're not actually emitted right now
    because there's only ever one pending write but let's be forward compatible.

commit 225c6f1719603cdc737247a19469db1bea4fde52
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 1 14:49:19 2012 +0100

    unix, windows: fix several error messages

commit 0d5d6504e58854604a6f27ce06b765d1eb79731b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 1 14:03:38 2012 +0100

    unix, windows: fix EAGAIN error message

commit 97c527ac4372e4548e7a9fde1d97bea89f76c019
Author: Leonard Hecker <leonard.hecker91@gmail.com>
Date:   Thu Oct 25 17:48:17 2012 +0200

    darwin: make it possible to compile for iOS

    Relocate the include of TargetConditionals.h and fixe the use of
    TARGET_OS_IPHONE. Furthermore, uv__fsevents_init() and uv__fsevents_close are
    now empty functions for iOS, since the FSEvents API is not available there.

commit 149b16f1232d8fdcf5436534d6ade6f9877e1b8f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Oct 25 15:10:16 2012 +0200

    windows: closing handles should always keep the loop alive

    This makes the tcp-ref2 and udp-ref2 tests pass again.
    Also adds another reference count test.

commit 6150feda56193e2b228fe893fcf79980d8586bf4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 25 12:49:30 2012 +0200

    unix: fix ‘fd’ undeclared build error

    Reapplies commit b5028c5b, failed to merge in 5cb4197.

commit 5cb4197debf531183808ad3188d0638bd9ffa9df
Merge: 0dbab84 f43ad85
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 25 04:43:19 2012 +0200

    Merge branch 'v0.8'

commit f43ad85eddf708bb1c1d87cd6a1e7e60a9191dd6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 25 04:26:56 2012 +0200

    include: fix ngx_queue_foreach() macro

    Guard against the possibility that the queue is emptied while we're iterating
    over it. Simple test case:

      #include "ngx-queue.h"
      #include <assert.h>

      int main(void) {
        ngx_queue_t h;
        ngx_queue_t v[2];
        ngx_queue_t* q;
        unsigned n = 0;
        ngx_queue_init(&h);
        ngx_queue_insert_tail(&h, v + 0);
        ngx_queue_insert_tail(&h, v + 1);
        ngx_queue_foreach(q, &h) {
          ngx_queue_remove(v + 0);
          ngx_queue_remove(v + 1);
          n++;
        }
        assert(n == 1); // *not* 2
        return 0;
      }

    Fixes #605.

commit 0dbab845292c742085797dbbb4b5696d7bd5b20e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Oct 24 21:36:02 2012 +0200

    benchmark: async_pummel should not call uv_async_send on closed handle

    This fixes an assertion that triggered in debug builds on Windows.

commit a54b9e292164473f4553881acc66f20a4f3fbd61
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Oct 24 21:34:32 2012 +0200

    benchmark: timed_udp_pummel should not write to closed udp handle

    This fixes intermittent assertion failures when running the benchmark.

commit 31f9fbce6321e2a26ab6d6c2d404aba1a7f161a7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 24 03:32:28 2012 +0200

    unix: reopen tty as /dev/tty

    Reopen the file descriptor when it refers to a tty. This lets us put the tty in
    non-blocking mode without affecting other processes that share it with us.

    Fixes #601.

commit b7f38b1e5384ee8d6d871ef60babf0305f0bc7af
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 24 14:54:14 2012 +0200

    Revert "unix: avoid iterating over all async handles"

    This reverts commit 209abbab27abdc63200cbd707f72fed4245ab4d0.

    Fixes the following SIGSEGV:

      (gdb) f 1
      #1  0x00007fc084683aec in uv__async_io (loop=0x7fc0848e0b40,
      handle=0x7fc0848e0c78, events=1) at src/unix/async.c:175
      175             ASYNC_CB(h)
      (gdb) list
      170
      171         /* If we need to sweep all handles anyway - skip this loop */
      172         if (!loop->async_sweep_needed) {
      173           for (i = 0; i < end; i += sizeof(h)) {
      174             h = *((uv_async_t**) (buf + i));
      175             ASYNC_CB(h)
      176           }
      177         }
      178
      179         bytes -= end;
      (gdb) print *h
      $1 = {close_cb = 0x184e1b0, data = 0x18d9520, loop = 0x7fc0848e0b40,
      type = 49, handle_queue = {prev = 0x18dae10, next = 0x7860c0}, flags = 32,
      next_closing = 0x1863b40, pending = 0, async_cb = 0x31,
      queue = {prev = 0x18dae50, next = 0x7860c0}}
      (gdb)

    It looks like the async handle gets closed or otherwise becomes invalid before
    the sweep is executed.

    Fixes #603.

commit 61ecb3415d0d3f53f25d937cf344fd6a20bcf25e
Author: saghul <saghul@gmail.com>
Date:   Tue Oct 23 22:33:28 2012 +0200

    win: support compilation with Visual Studio 2008

commit c2478b26692363a4495c3d72e72977bbf90120fe
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 22 13:35:53 2012 +0200

    linux: update comm field in uv_set_process_title()

    Makes the new process name visible in both `ps` and `ps a`, with the caveat
    that `ps` will only print the first 16 characters.

    Before this commit, `ps` kept reporting the old process name.

commit 775064a3a540689db1d5a8f95f5a17e90dc8d347
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 20 23:58:22 2012 +0200

    linux: use /proc/cpuinfo for CPU frequency

    Obtain the CPU frequency from /proc/cpuinfo because there may not be any
    cpufreq info available in /sys. This also means that the reported CPU speed
    from now on is the *maximum* speed, not the *actual* speed the CPU runs at.

    This change only applies to x86 because ARM and MIPS don't report that
    information in /proc/cpuinfo.

    Fixes #588.

commit 1bb1ba27ddfadc40986d35b7c2067a73c3cf1e14
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 20 23:36:00 2012 +0200

    unix: fix compiler warning in async.c

    Include missing <string.h> header. Fixes the following compiler warning:

      src/unix/async.c:182:7: warning: implicit declaration of
      function ‘memmove’ [-Wimplicit-function-declaration]

commit 209abbab27abdc63200cbd707f72fed4245ab4d0
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Thu Oct 18 15:23:51 2012 +0700

    unix: avoid iterating over all async handles

commit 1e32cb01b5ae20be0d27fa05ee1555b3f67bf763
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Oct 16 17:42:30 2012 +0200

    unix: support signal handlers outside the main loop

commit 39d574dcff7f5b273d5271c19271d8ba13e9621b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Oct 16 17:30:30 2012 +0200

    unix: make it possible to delay close callbacks

commit 47eb03490ac6e2456f903c0e72ecb22f68b3d0e9
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Oct 16 17:20:32 2012 +0200

    test: move loop cleanup code to the individual tests

commit 28eb619c6504e7f6c10f517487679980aa8560bd
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 12 00:11:27 2012 +0200

    windows: don't run signal tests

    They are dummy tests on windows, running them is misleading.
    Also remove duplicate 'test-signal.c' entry from uv.gyp.

commit c5e1140779274312b7faca43cdedb668b095cac7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Oct 16 17:21:07 2012 +0200

    tests: fix some compile warnings on windows

commit 36b1e1a57c59ff835177e26f37742f5fb49cb353
Author: Hiroaki Nakamura <hnakamur@gmail.com>
Date:   Tue Oct 16 06:08:14 2012 +0900

    test: change 10e8 to 1e9

    It is clearer and used everywhere else.

commit fd136da04ade528edb666bf00a7bc7c4bd4d120c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 15 00:53:37 2012 +0200

    unix: remove always_inline attribute

    Fixes the following gcc 4.7+ warning:

      ../src/unix/internal.h:105:13: warning: always_inline function might not be
      inlinable [-Wattributes]

    gcc wants the always_inline function to be annotated with the 'inline' keyword
    which we can't do because we compile in C89 mode.

    Using __inline is not an option because that makes clang generate warnings when
    -Wlanguage-extension-token is enabled.

    Therefore, remove the always_inline attribute altogether and hope that the
    compiler is smart enough to inline the functions.

commit d8de4fbd13f9284737a01dea32639785780c6f0a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 15 00:52:24 2012 +0200

    build: compile with -fwrapv in debug mode

commit 47b2cd31c9b7372553e7687cd3c156d302695e59
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 11 14:32:06 2012 +0200

    build: rename uv.a to libuv.a

commit 9a6f496985823a07f808bac7df95343051c29d1b
Author: saghul <saghul@gmail.com>
Date:   Thu Oct 11 00:53:50 2012 +0200

    win: fix compilation with MSVCRT < 8.0

commit b0c1a3803ab93c93404fd0c00d809ae678a4f43a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Oct 10 17:09:20 2012 +0200

    windows: fix handle leak in uv_fs_utime

commit 4900912d44f3738f50e2a211882d558d6ad0523a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Oct 10 17:15:08 2012 +0200

    windows: fix application crashed popup in debug version

    This is a backport of 2 patches by Ting-Yu Lin and Hiroaki Nakamura.

commit cb03e3bd26587b851552ad8b54b30600e48ef829
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 10 02:09:37 2012 +0200

    darwin: work around concurrent write() kernel bug

    Simultaneously writing from multiple threads to the same file descriptor is not
    safe on OS X. We already serialized all pwrite() system calls, apply the same
    workaround to the write() system call.

    Fixes a node.js test, test/simple/test-fs-sir-writes-alot.js, that was failing
    because parts of the output file got filled with nul bytes.

commit 4affbe70b6f2342c479eb71f9a5df26fed9dccca
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 10 01:09:45 2012 +0200

    unix: remove unnecessary pthread_join ESRCH check

    ESRCH means the thread never got started but we guard against that now.

commit acea3028c53c6e8c5eeeb09f0fba9e4c031aa0ee
Author: Hiroaki Nakamura <hnakamur@gmail.com>
Date:   Tue Oct 9 21:44:20 2012 +0900

    unix, windows: add thread barrier support

commit 2684f876a9998db99848f452a5ff3438be773a05
Author: Hiroaki Nakamura <hnakamur@gmail.com>
Date:   Tue Oct 9 22:57:59 2012 +0900

    windows: don't set CRT debug mode on MinGW

commit 193432df7d9fd4aef80a3e993f6c00824d5fc50e
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Sat Oct 6 01:43:54 2012 +0300

    uv.h: move gid and uid to the end of the uv_process_t struct

    uv_gid_t and uv_uid_t have different sizes on different platforms.
    Moving them to the end of the struct is easier for bindings that use
    FFI.

commit b2caee7cfb495d4ea7239dc23699ba19b51454cc
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Sat Oct 6 01:39:46 2012 +0300

    uv.h: move private uv_req_t fields to the bottom of the struct

commit 40134c35377c74bfa56dd764f315dbc5a39a7b22
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 8 00:37:01 2012 +0200

    unix: don't reap threads if none were started

    Fixes a segmentation fault on 32 bits linux with glibc 2.15.

    Thanks to Johan Bergström (@jbergstroem) for reporting the issue and testing
    out the patch.

commit f7c991f1cef1e0691b384b900f551a5c30745c36
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Sun Oct 7 07:25:09 2012 +0900

    test: add consumer-producer test for condvar

commit 8f1ec328656c8fb792fce4a346c11141ab2cd9f9
Author: Ting-Yu Lin <ph.minamo@cytisan.com>
Date:   Sat Oct 6 23:28:30 2012 +0800

    windows: fix application crashed popup in debug version

commit b9ed1a6dbf0ea5f58ce6c93ac99e738579b84b5a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 6 22:45:26 2012 +0200

    unix: don't abort() on EINVAL in threadpool.c

    The FreeBSD implementation of pthread_join() returns EINVAL when a thread has
    already quit, not ESRCH.

commit b152b127727878580112ce2bb1e3754fd387d798
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 6 22:25:21 2012 +0200

    unix: fix scandir filter prototype again

    The only platforms where the dirent argument is non-const are OS X, OpenBSD
    and older versions of FreeBSD (but not FreeBSD 9). Accommodate the first two.

commit 7833df14ba7cbc2acab87d43e226a4d874aad698
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 6 17:19:09 2012 +0200

    freebsd, openbsd: don't use fdatasync()

    The fdatasync() system call does not exist on either FreeBSD or OpenBSD, fall
    back to fsync().

commit 7aa126176921b044baab3de357b6afff2ed90355
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 5 15:05:30 2012 +0200

    include: fix confusing uv_tcp_keepalive comment

commit 976c8a4387e5ca4d021924dcf22b9cb9c8c638a8
Author: Hiroaki Nakamura <hnakamur@gmail.com>
Date:   Fri Oct 5 13:03:03 2012 +0200

    Add support for condition variables on all platforms

commit 744dc3e77c9b914e3863c821f5b0c951de4db0cb
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Oct 4 01:21:30 2012 +0200

    windows: make uv_rwlock_init initialize libuv

    Without this patch, the fallback implementation would be used if
    uv_rwlock_init were to be called before a loop was created or
    uv_default_loop() was called.

commit fed718c6cbfbaaed0f98a3678f19916f8c726717
Author: Artur Adib <arturadib@gmail.com>
Date:   Wed Oct 3 17:29:08 2012 -0400

    unix: move queue stuff from fs.c to threadpool.c

commit 01337af65d8567f11594eed7af1c7154f1a37845
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Wed Oct 3 10:08:58 2012 +0900

    test, windows: fix duplicated windows.h

    including windows.h before winsock2.h cause build error

commit d796c3b6f414718c7e030046e4369060a20b4ba1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 3 00:58:04 2012 +0200

    test: fix windows #include bug

    Fixes a "'AF_IPX' : macro redefinition" warning when compiling test/runner.c.

commit b88f8b40d69bca56d9d858860ed024f773c41f8e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 3 00:23:38 2012 +0200

    test: fix uninitialized memory warning, use calloc

    Fixes the following valgrind warning:

      ==29019== Syscall param writev(vector[...]) points to uninitialised byte(s)
      ==29019==    at 0x584270B: writev (writev.c:51)
      ==29019==    by 0x449BB2: uv__write (stream.c:733)
      ==29019==    by 0x44AE91: uv_write2 (stream.c:1159)
      ==29019==    by 0x44AF25: uv_write (stream.c:1180)
      ==29019==    by 0x42CCAA: connect_cb (test-tcp-writealot.c:129)
      ==29019==    by 0x44AC05: uv__stream_connect (stream.c:1097)
      ==29019==    by 0x44AA25: uv__stream_io (stream.c:1050)
      ==29019==    by 0x437430: uv__io_rw (core.c:539)
      ==29019==    by 0x43C3D9: ev_invoke_pending (ev.c:2145)
      ==29019==    by 0x436EC5: uv__poll (core.c:260)
      ==29019==    by 0x436F0F: uv__run (core.c:269)
      ==29019==    by 0x436F6E: uv_run (core.c:277)
      ==29019==  Address 0x5f15040 is 0 bytes inside a block of size 94,371,840 alloc'd
      ==29019==    at 0x4C2C5EF: malloc (vg_replace_malloc.c:270)
      ==29019==    by 0x42CDED: run_test_tcp_writealot (test-tcp-writealot.c:148)
      ==29019==    by 0x406551: run_test_part (runner.c:302)
      ==29019==    by 0x405384: main (run-tests.c:57)

commit c666b6310de2d85b3c966ad8de2cfef44d1af1ae
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 3 00:01:42 2012 +0200

    unix: fix uninitialized memory read in uv__read()

    This commit fixes the following valgrind warning:

      ==26443== Conditional jump or move depends on uninitialised value(s)
      ==26443==    at 0x44AAFF: uv__read (stream.c:872)
      ==26443==    by 0x44ADD4: uv__stream_io (stream.c:1051)
      ==26443==    by 0x4377B8: uv__io_rw (core.c:539)
      ==26443==    by 0x43C761: ev_invoke_pending (ev.c:2145)
      ==26443==    by 0x43724D: uv__poll (core.c:260)
      ==26443==    by 0x437297: uv__run (core.c:269)
      ==26443==    by 0x4372F6: uv_run (core.c:277)
      ==26443==    by 0x42094B: run_test_pipe_ref4 (test-ref.c:334)
      ==26443==    by 0x406551: run_test_part (runner.c:302)
      ==26443==    by 0x405384: main (run-tests.c:57)

commit c6c691f3230134f18e332e98479628fe538ae92c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 2 23:54:16 2012 +0200

    test: join worker thread at exit in test-async.c

commit 5135cfc45bd7725157c8f8fbdfc7863d3d1c32c0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 2 23:45:27 2012 +0200

    test: fix memory leak in test-getsockname.c

commit f89986b1539aadabd8f0953025408792c6dc8f52
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 2 23:13:50 2012 +0200

    test: fix memory leaks in test-fs-event.c

commit e474a2a420e4bf22f5017bac96a16a08a7e3fc32
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 2 23:10:59 2012 +0200

    test: fix memory leak in test-fs.c

commit b37a0f5bb3d0d6e1314d89eaabd2092c7548ba7d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 2 23:02:31 2012 +0200

    unix: fix small race in fs.c

    Don't return req->result after posting the work request. It's possible (if
    unlikely) for a worker thread to process the request before the main thread
    reaches the return statement.

commit 3977d1b36c689767cc0db50089ec774143795341
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 2 02:51:58 2012 +0200

    unix: emulate sendfile if necessary

    Some platforms don't support sendfile() (netbsd, openbsd), others don't support
    arbitrary file descriptors (freebsd, darwin) and yet others have quirks in their
    implementation (sunos).

    Work around the quirks. If all else fails, fall back to sendfile() emulation.

commit 2d3760a17c58812cf1058acad01b1f826005cc5e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 2 14:37:13 2012 +0200

    unix: fix scandir filter prototype

    The dirent argument is const on systems that conform to POSIX.2008 (Linux and
    Solaris) but non-const on others.

commit 8399cb1fc366b1e5184f8a4e65f4e67f60eea7a9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 23:54:32 2012 +0200

    test: fix memory leaks in fs_symlink test

commit d36e2f21cf2c88291c523cd0235d5446feaa8678
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 23:50:58 2012 +0200

    unix: fix buffer overrun in fs.c

commit 6342658ad8281a1fb70cf3777d35be21dba6c8bb
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 15:21:59 2012 +0200

    unix, windows: fix memory leak in fs-poll.c

    The internal timer handle associated with the uv_fs_poll_t wasn't always closed
    when the fs poll handle was closed, leaking about 650 bytes memory.

commit f793298c9ea6b08e1484f25b215cdffc4e1f9441
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 23:04:36 2012 +0200

    include: remove uv_fs_poll ABI compat padding

commit 447ee1060c5ca1eb2a846b976a816bbabe60636f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Oct 1 23:07:31 2012 +0200

    doc: add link to test/ to the readme

commit 7320633c4b96ac23a5f41982d0c036e1c742ef6c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 22:47:25 2012 +0200

    unix: remove uv_fs_stat windows compat hack

    uv_fs_stat and uv_fs_lstat removed the trailing backslash (if any) from the path
    in order to please a test case that was written for Windows. Remove the
    compatibility hack and fix the test.

commit 678e95a4432952a9a2c7786bec513c5e0f30f45e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 14:07:10 2012 +0200

    test: close handle in ref tests

    Everything that gets reported by valgrind now is an actual memory leak.

commit b60a24a206f21a139912eb5d847a9b1ac77187dc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 00:32:01 2012 +0200

    unix: remove libeio

commit 74999f8f9974970e4d71a0df521e178e3149f3df
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 00:57:45 2012 +0200

    unix: port fs and work api to new thread pool

commit 36c91e3ba0f6e27b8f518f903c732005bce191fa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 00:48:47 2012 +0200

    unix: port getaddrinfo to new thread pool

commit f35a4b628a0153e454414e0c897785b59dd3709f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 1 00:38:39 2012 +0200

    unix: add custom thread pool

commit 1020a1a82e78e9a018ef4d152274f13233da788e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 30 23:05:25 2012 +0200

    include: make ngx_queue macros sanitary

commit 5e09e1b57eb658ba800fe8513df0210daebb6b3f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 30 17:39:22 2012 +0200

    linux: please valgrind, free memory at exit

    Free the memory that is used to store the new argv and envp. It's not strictly
    necessary (the OS is going to reclaim the memory anyway) but it makes the output
    from valgrind a lot less noisy.

commit 45b5e79f8eed828523359064f7bb9d9332a91584
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 30 23:35:22 2012 +0200

    test: fix memory leak in tcp_ping_pong

commit f090297f62b834b8904ac1bc4f8c9c969855b1e6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 30 23:41:03 2012 +0200

    test: delete default loop after test run

    Delete the default event loop after the test completes. Keeps valgrind happy.

commit 4e268f7718a21e55ffa6580b8b378c2fe724bbec
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 30 17:38:02 2012 +0200

    test: add valgrind support

    Run tests through valgrind when UV_USE_VALGRIND=1 is set in the environment.

commit 48f98424bdae92cbd54c3f41cb4f7cc5a18cbf30
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 30 17:07:24 2012 +0200

    test: fix error message in runner

commit 1923abda9487921fc2ce5ba6586ce035c5645e94
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 30 03:26:48 2012 +0200

    test: add uv_fs_readlink test

commit e2cffdcf5fe934ea799b19f8ce9220839ea1979c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Oct 1 19:49:30 2012 +0200

    doc: add lxjs talk to readme

commit 7ac23ee0c6ec51974ef7e63679172c567dab14ce
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Sep 28 07:58:54 2012 +0200

    unix: move getaddrinfo code to getaddrinfo.c

commit 4f8e2a8e8e1c192d21d93142049c91bc3c68a493
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Sep 28 07:01:59 2012 +0200

    unix: close async pipe fds on loop delete

commit 17ea46d25935797c5b67ace2afb38da637614b60
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Sep 28 06:18:21 2012 +0200

    include: remove uv_counters_t, missed in 837edf4

commit 8afd71a12896a8082a26cca51f942d6f14761caa
Author: Shannen Saez <shannenlaptop@gmail.com>
Date:   Wed Sep 26 03:20:44 2012 +1000

    windows: fix vcbuild.bat issue

    gyp_uv was complaining because it never receives a value for which type
    of library to build (static vs shared). This makes vcbuild.bat set the
    default to build a static library.

commit 39ca621987e1d1542cec76b8785aa15ea26e225d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Sep 22 03:49:52 2012 +0200

    windows: don't blow up when an invalid FD is used

commit b877db93cec5664a9603ca94c172b06952382468
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Wed Sep 19 10:49:20 2012 -0700

    unix: map EDQUOT to UV_ENOSPC

commit 5bfb7c917b3b487aab5e44face286bf4c6a0ef68
Author: Luigi Grilli <luigi.grilli@gmail.com>
Date:   Fri Sep 21 00:51:49 2012 +0200

    windows: build system improvements

    * Add shared/static library option
    * Add x86/x64 target option
    * Improve Visual Studio detection
    * Set GYP_MSVS_VERSION to pick VS2010 over VS2008

    Closes GH-504
    Closes GH-514

commit 45931f8b2b7a536dead3b915092f216df8382a03
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Sep 20 23:50:42 2012 +0200

    Add mailing list to readme

commit 46bd5fb3924cc754f99c21244380d12faff41549
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Sep 20 16:07:08 2012 +0200

    Rearrange struct layouts to make FFI bindings easier

    This patch ensures that all struct fields are in this order:
      1. public
      2. readonly
      3. private

commit 73cf3600d75a5884b890a1a94048b8f3f9c66876
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Thu Sep 20 13:04:48 2012 +0400

    darwin: fsevents: emit UV_CHANGE on metadata change

commit 2916a16067381a1cc6eae0ade499bcaeeef461e8
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Wed Sep 19 10:49:20 2012 -0700

    unix: map EDQUOT to UV_ENOSPC

commit ea8db64559680b589196b1ae01152c35d2232c41
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Sep 18 13:14:14 2012 +0200

    darwin: fix 'directive in macro' compiler warning

commit 778144f0b5bc14fe55d79854d0a67124ceaa4b22
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Tue Sep 18 00:38:40 2012 +0400

    darwin: emit relative path in fsevents

commit be2a2176ce25d6a4190b10acd1de9fd53f7a6275
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Sep 18 00:04:50 2012 +0200

    unix: rethink relaxed accept() approach

    Benchmarks demonstrated that the idle timer handle approach didn't balance the
    load quite fair enough, the majority of new connections still ended up in one
    or two processes.

    The new approach voluntarily gives up a scheduler timeslice by calling
    nanosleep() with a one nanosecond timeout.

    Why not sched_yield()? Because on Linux (and this is probably true for other
    Unices as well), sched_yield() only yields if there are other processes running
    on the same CPU.

    nanosleep() on the other hand always forces the process to sleep, which gives
    other processes a chance to accept our pending connections.

commit 37dc7472d762003f6415e4d12608fc6235bb70e4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Sep 17 23:48:19 2012 +0200

    test: fix aliasing warning in dns-server.c

commit 29f44c756468eab4f6f23781b949dd788c9c559a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Sep 5 22:57:10 2012 +0200

    bench: let client close connection in tcp_multi_accept{2,4,8}

commit a8c6da8dfa9a33c0f6ccdc555bb4fd3ac47bb07f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Sep 5 22:49:44 2012 +0200

    bench: add idle delay to tcp_multi_accept{2,4,8}

commit b74b1c4c56e8c8c0527d80a24a3a8da99c49b68b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Sep 5 16:25:18 2012 +0200

    bench: add tcp accept benchmarks

commit cc1c1912ca119c56ecdc0e4564720a01bd53d47e
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Mon Sep 17 12:15:12 2012 +0200

    unix, windows: add uv_tcp_open and uv_udp_open

commit c8514b03829b841ea52c4fe90fbd20ff5dfe9fe2
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Thu Sep 13 08:45:31 2012 +0200

    unix, windows: return error if uv_pipe_open fails

commit 9a4838110d5b625356d6df537931617a5987ece4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 14 17:00:25 2012 +0200

    linux: improve /proc/cpuinfo parser

    Make uv_cpu_info() understand the ARM and MIPS versions of /proc/cpuinfo,
    it only knew how to deal with the x86 version

    This commit also fixes a buglet where uv_cpu_info() reported the maximum CPU
    frequency instead of the actual CPU frequency. That is, before this commit
    `out/Debug/run-tests platform_output | grep speed | sort | uniq -c` on my
    system always reported:

          8   speed: 3400

    Now it reports (for example):

          2   speed: 3400
          6   speed: 1600

    In other words, two CPUs are running at full speed while the others have been
    scaled back because they're mostly idle.

    This is a back-port of commit 54bfb66 from the master branch.

    Fixes #526.

commit b2dc1e6d64874182d460b81c10ec6165baad3780
Author: Bert Belder <user@ChrUbuntu.(none)>
Date:   Fri Sep 14 17:50:45 2012 +0200

    win/tty: reset background brightness when color is set to default

commit 3d9de13f1bd0a747615ddb3fa5f9c7c7d3500d5c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Sep 14 03:56:12 2012 +0200

    darwin: fix build when minimum OS X version is specified

    The OS X version was being checked with the __MAC_OS_X_VERSION_MIN_REQUIRED__
    macro, but this value doesn't match the actual SDK version when it is
    overridden with the -mmacosx-version-min command line switch.

commit a28f1452697ffc4310a99eba9ce2ee3906d11578
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Sep 14 02:46:33 2012 +0200

    windows: un-break writable tty handles

commit 5a2988fc33a5942b2e0e55bf6993843fe3448305
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Sep 14 01:48:41 2012 +0200

    windows: remove unnecessary pointer alignment code

commit b4a5bfb7e0af760464f369c47abc99645f1768a3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Sep 14 01:42:36 2012 +0200

    windows: style

commit 900ad30b43599e9ac13a84e634db414846d0af6e
Author: Andrew Paprocki <andrew@ishiboo.com>
Date:   Fri Sep 14 01:21:02 2012 +0200

    aix: add initial platform support for aix using gcc/gxlc

    Adds initial libuv build/platform support for AIX. Builds work using gcc or the
    IBM XL C compiler using its gxlc wrapper. Platform support is added for
    uv_hrtime, uv_exepath, uv_get_free_memory, uv_get_total_memory, uv_loadavg,
    uv_uptime, uv_cpu_info, uv_interface_addresses.

commit 9aead825374174fc5e617f7971d865a08eebb120
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Sep 13 23:42:07 2012 +0200

    windows: rename UV_HANDLE_CLOSING to UV__HANDLE_CLOSING

commit 15ba80033aad455ace45288fb0d5a50cba8a86f4
Author: Leonard Hecker <leonard.hecker91@gmail.com>
Date:   Wed Sep 5 16:35:28 2012 +0200

    windows: support for NULL as uv_queue_work callback

    This will make uv_queue_work consistent with other functions, where it's
    possible to omit the callback. I'm pretty sure that this is already
    implemented for unix systems, although I didn't test the unix part of
    uv_queue_work.

commit 1f9bd9953197a4ca83b8a725a215269c5f221de7
Author: Prancesco Pertugio <meh@schizofreni.co>
Date:   Wed Sep 12 00:27:35 2012 +0200

    Add uv_thread_self.

commit 2b04bc7a747ee57dedad4ecdcc1a51ca83ec85fc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Sep 13 14:13:21 2012 +0200

    doc: add note about -D_GNU_SOURCE

commit b7047d6701db85d5d074ed4e081a31f3928e6a45
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Thu Sep 13 00:46:49 2012 +0200

    unix: remove __read_mostly macro

    It creates trouble with llvm-gcc on OS X.

commit f8e7513a0618c33aef526abf76eb4bc99f0cdaa0
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Mon Aug 13 16:37:31 2012 +0400

    darwin: use FSEvents to watch directory changes

commit 1988f5e581e4cadb20d8e69ddee9be8a26ff2646
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Sep 12 01:44:46 2012 +0200

    unix: put child process stdio fds in blocking mode

    Remove the O_NONBLOCK flag from file descriptors 0-2, most applications don't
    expect EAGAIN errors when dealing with stdio.

commit b5028c5b542f34f77ab9e0dcf172898d7f2028a0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Sep 12 01:33:16 2012 +0200

    unix: code cleanup, rename variable

commit 57e6113683bb5b1b69e7bb92dad45b04ca7a97b9
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Sat Sep 8 21:34:14 2012 +0900

    unix: support missing api on NetBSD

commit 4f5c8da191a29a8567e69c8586c9e275ab465232
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Sep 10 16:20:56 2012 +0200

    unix: reimplement accept() EMFILE trick

    Implement a best effort approach to mitigating accept() EMFILE errors.

    We have a spare file descriptor stashed away that we close to get below
    the EMFILE limit. Next, we accept all pending connections and close them
    immediately to signal the clients that we're overloaded - and we are, but
    we still keep on trucking.

    There is one caveat: it's not reliable in a multi-threaded environment.
    The file descriptor limit is per process. Our party trick fails if another
    thread opens a file or creates a socket in the time window between us
    calling close() and accept().

    Fixes #315.

commit 86cb5203b6275920c4548f8ef93a0f37165f9416
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Sep 10 15:01:50 2012 +0200

    unix: fix EMFILE busy loop

    Don't spin in epoll_wait() / kevent() / port_getn() / etc. when we can't
    accept() a new connection due to having reached the file descriptor limit.
    Pass the error to the connection_cb and let the libuv user deal with it.

commit 12c25e1027e26ffb16f54d17a69a88450e9a23df
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Sep 10 15:01:50 2012 +0200

    unix: fix EMFILE busy loop

    Don't spin in epoll_wait() / kevent() / port_getn() / etc. when we can't
    accept() a new connection due to having reached the file descriptor limit.
    Pass the error to the connection_cb and let the libuv user deal with it.

commit 33bcb6359613361b60565f280375edeb672514c8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Sep 7 15:08:43 2012 +0200

    build: make gyp_uv understand '-f ninja'

commit 27b11abcc0668982c61d58a44a56adb0f45cc56d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Sep 8 17:52:57 2012 +0200

    unix: mark accept idle handle as internal

commit 817b6c356bd0e8e4b1bb5d7daf23b0be4e72a15c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Sep 7 15:08:43 2012 +0200

    build: make gyp_uv understand '-f ninja'

commit 3bbe8f975417002640f7248204bf7282f7f6e2df
Merge: 032c041 b101a53
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Sep 4 01:23:18 2012 +0200

    Merge branch 'v0.8'

commit b101a53e6ef80945f12c91263a4b41b45b8b4344
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Sep 4 01:20:30 2012 +0200

    sunos: don't set TCP_KEEPALIVE

    The system headers advertise the socket option but the actual syscall fails
    with ENOPROTOOPT.

    Fixes joyent/node#3937.

commit 032c04179033b7512187fbcd17230e564c8573f4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Sep 3 21:09:40 2012 +0200

    windows: use UV_HANDLE_READABLE and UV_HANDLE_WRITABLE

    These flags supersede UV_HANDLE_EOF and UV_HANDLE_SHUTTING. This patch
    also moves a lot of stream related state-checking code to stream.c.

commit 483043b0e585d054d2d06d759c050a623191c50a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Sep 3 17:16:21 2012 +0200

    windows: map WSAESHUTDOWN to UV_EPIPE

commit 0bbccbc31d9f49132fe27edee17aba3086d73ba3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Sep 3 15:38:29 2012 +0200

    windows: remove the UV_HANDLE_SHUT flag

commit ff0a93a04f216924e3da92e77b14214a93575cfe
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Sep 1 00:27:20 2012 +0200

    unix: fix clang -Wlanguage-extension-token warnings

commit 5eb1d191cce15e01745317ee8c8a3065803f4f02
Merge: a75e105 24c062c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Aug 30 17:26:02 2012 +0200

    Merge branch 'v0.8'

commit 24c062cc3e7013fdaab7dd9c6b7f0266a43622d0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Aug 30 17:24:20 2012 +0200

    windows: fix memory corruption when closing shared server sockets

commit a75e10504f4e213408efea47de30c52f6367395e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 29 22:27:11 2012 +0200

    freebsd: fix build breakage introduced in 3b69c0f

commit 09faee40eb6de13f115dfcae3305faa49f8d252f
Author: Shigeki Ohtsu <ohtsu@ohtsu.org>
Date:   Wed Aug 29 11:14:36 2012 +0900

    windows: fix environment_creation test

    abc945bc04bcd84ecb980988264949013ca35198 fails environment_creation test

commit abc945bc04bcd84ecb980988264949013ca35198
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 28 22:20:16 2012 +0200

    windows: make spawn with custom environment work again

commit 5c674b28894ba3b5f66959a9520ba7e18fb45a58
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 28 22:21:13 2012 +0200

    windows: squelch some warnings related to int64 to int32 conversion

commit 162e57baa972b008840644bafeb292e8aa7ed62d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 28 21:49:54 2012 +0200

    windows: map ERROR_DIRECTORY to UV_ENOENT

commit 621a4e36f7f000a5c9f932bc66021a83c96cae42
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 27 23:57:48 2012 +0200

    test: add test for uv_is_active and uv_is_closing

commit 637be161b391e42f7b69e348a9c424d95c7ff963
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 27 23:56:35 2012 +0200

    windows: make active and closing handle state independent

commit c77d08eb9229f738aa9d6433a1d3e1d711abfa3d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Aug 25 22:02:37 2012 +0200

    bench: add timed and non-timed udp pummel benchmarks

commit a3c6a485c6a01eff85015f39113247f82ea1e24c
Merge: 343be71 ad7b48a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Aug 25 22:33:17 2012 +0200

    Merge branch 'v0.8'

    Conflicts:
    	include/uv.h

commit ad7b48aeec39ba90a9817aaf07abcaf3f9ebf462
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Aug 25 22:22:43 2012 +0200

    unix: fix memory leak in udp.c

    Some memory was leaked when the uv_udp_t handle was closed when there were
    in-flight send requests with a heap allocated buffer list.

    That doesn't happen much in practice. In the common case (writing < 5 buffers),
    the buffer list is stored inside the uv_udp_send_t structure, not allocated on
    the heap.

commit 343be71cae4ab143f3a53c898f1f317bbf16745f
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Fri Aug 24 15:25:37 2012 +0900

    windows: remove superfluous uv__handle_start

    uv__handle_start was not needed in uv_signal_init

commit d62b1ac3820d740559649b56e369cde57998f3da
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Aug 23 23:50:03 2012 +0200

    windows: fix the MinGW build

commit e89cb907a2e2e9f64842d363c3e245418eabafcd
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Aug 23 15:50:50 2012 +0200

    unix: fix aliasing warnings in stream.c

commit b81e67a19cb59fc60549a26e8b986d3e217143c8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Aug 23 15:37:45 2012 +0200

    unix: fix aliasing warning in udp.c

commit 0ac2fdc55455794e057e4999a2e785ca8fbfb1b2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Aug 23 00:32:56 2012 +0200

    unix: map errno ESPIPE

commit a787a16ac371b2c5ed5c8a61a5602e71beff81e0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 22 20:40:14 2012 +0200

    unix: fix uv_async_send not working with Sun Studio

    uv_async_send would always return 1 when non-gcc compilers were used.
    When uv_async_send returns 1 no attempt is made to make port_getn
    return, so in this situation uv_async_send didn't wake up the event
    loop.

commit 120e2c1335e9c5c2bfda5348af3d3ea05c0934ac
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 22 15:02:51 2012 +0200

    darwin: fix return value of uv_sem_init()

    It should return 0 or -1, not the kernel status code.

commit 8969df6015a2697f9deb0c6bbabbafbd70ad9ce2
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Wed Aug 22 19:27:17 2012 +0700

    darwin: handle KERN_ABORTED in uv_sem_wait()

commit 29eb460d0b20fe32619e50e3a5a517e8d3f71b3c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 22 09:46:00 2012 +0200

    linux: fix fscanf() -Wunused-result warning

commit 03bdfd08ccc70760e05729ac7e04d17ebc4a7fcd
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 22 01:06:05 2012 +0200

    windows: lock tty output before updating the virtual window size

commit 564e7c765cf7992fb7db0a4e0749ae84e9695d85
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 22 00:40:41 2012 +0200

    windows: emit SIGWINCH when the console size changes

commit b12b6498d612990a1f5375148a5bde456e7efddf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 21 14:44:07 2012 +0200

    darwin, freebsd: use ioctl(FIOCLEX) and ioctl(FIONBIO)

    Set the non-blocking and close-on-exec flags with ioctl() instead of fcntl(),
    it's about 10-25% faster.

    Stick with fcntl() on Solaris. ioctl(FIONBIO) works but is twice as slow as
    fcntl(O_NONBLOCK). ioctl(FIOCLEX) doesn't raise an error but doesn't actually
    work either.

commit 37173f851524e2bf86069cda729538b35e6475d5
Merge: d90102e a7b83e0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 21 01:20:05 2012 +0200

    Merge branch 'v0.8'

commit a7b83e0b9822abe104761db9aea3fb975187114b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 21 01:17:48 2012 +0200

    windows: fix uninitialized memory access in uv_update_time()

    uv_update_time does not overwrite the high 32 bits of uv_loop_t.time.
    It merely increments it by one when the low 32 bits have wrapped. That
    means that `time` needs to be initialized to zero before
    uv_update_time() is called for the first time.

commit d90102e649e9711975895e70022a7a93dd4a3cac
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 21 00:57:49 2012 +0200

    linux: don't retry syscall after ENOSYS

    Don't try the pipe2() or socketpair(O_CLOEXEC) syscalls when a previous call to
    uv__make_pipe() or uv__make_socketpair() call established that the kernel
    doesn't support it. Speeds up pipe and socketpair creation on older kernels.

commit 6545e9bda46b0b4a7addfb32926eaab6f62e2b4b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 21 00:53:05 2012 +0200

    linux: tag no_accept4 __read_mostly

commit 5f8185aba59a4dae43711595699231f57133cefe
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 21 00:48:39 2012 +0200

    unix: add __read_mostly macro

    Variables tagged with __read_mostly are put into a separate ELF section to
    improve the cache locality of data that is read often but seldom written to.

commit 3c526cb7e53975fc867a6796236010933aedc7be
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 21 00:27:55 2012 +0200

    linux: fix uv__epoll_create() prototype

commit 5da380a5ca7f9ef02667ef3021fc97428df0b478
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Thu Aug 16 20:26:35 2012 +0700

    unix: use select() for specific fds on OS X

    kqueue(2) on osx doesn't work (emits EINVAL error) with specific fds
    (i.e. /dev/tty, /dev/null, etc). When given such descriptors - start
    select(2) watcher thread that will emit io events.

commit 8073a2637f82b44813fc60537724634694dc14a4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 20 18:37:05 2012 +0200

    windows: uv_signal_stop should be infallible

commit b0b5a08f5611cefbad7bb8703989f6b1700ae07a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 20 18:38:30 2012 +0200

    windows: report UV_INVAL when an invalid signum is supplied

commit 328f29b06f989d5e775ae4c4b6b28b7245c42737
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 20 18:32:50 2012 +0200

    windows: fix stupid uv_signal bugs

commit 28ff1422e8f789e417f36c2f063b6696ded67b92
Merge: 201b8f9 012cbda
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Aug 20 18:11:43 2012 +0200

    Merge branch 'v0.8'

    Conflicts:
    	src/fs-poll.c

commit 012cbda719a13bc21ce3b58d66544e351359f3af
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Aug 20 16:17:37 2012 +0200

    unix, windows: fix memory corruption in fs-poll.c

    uv_fs_poll_t has an embedded uv_timer_t handle that got closed at a time when
    the memory of the encapsulating handle might already have been deallocated.

    Solve that by moving the poller's state into a structure that is allocated on
    the heap and can be freed independently.

commit b5ad44d10301b6e95be0a3f30376d7241d55be98
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Aug 20 16:31:25 2012 +0200

    test: add uv_fs_poll_t to benchmark-sizes.c

commit 83e00873b7f28956b03896ba8f14835b667de815
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 7 21:26:02 2012 +0200

    unix: fix const correctness compiler warning

    This is a back-port of commit f97c80f from the master branch.

commit 201b8f935fc019d48ab1216be5c5f94a8f595956
Merge: 9f0e00c ce87b7e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Aug 18 03:57:41 2012 +0200

    Merge branch 'v0.8'

commit ce87b7e14cbf886e0f2279a322b87267a73071a0
Author: Tim Holy <holy@wustl.edu>
Date:   Fri Aug 17 13:24:24 2012 -0500

    unix: fix integer overflow in uv_hrtime

    Conversion to nanoseconds was overflowing with 32-bit builds.

commit 9f0e00c7b3911e49d7f19c15056f98c8ab17edb3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Aug 17 19:41:14 2012 +0200

    unix: fix the build

    uv_signal_t.signum was moved to uv.h in an earlier commit.

commit c4dbb60cffbaba4c376e7b9717e090b0ec5a0b68
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 15 03:11:47 2012 +0200

    windows: basic signal handling support with uv_signal_t

    This still needs tests.

commit 95a742be022eff9b77d988fef849ebb9d6dcd8ff
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Aug 17 19:29:58 2012 +0200

    Revert "windows: readable tty handles need access to console output"

    This is not the way to go.
    This reverts commit 1b929bfff5be0c03826e3855cb5e1fd3d6421ac7.

commit 3b69c0f56d890ea0a882b99c829c65e6dea85208
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Aug 17 16:21:24 2012 +0200

    unix: split up uv-unix.h

commit ddd52773dd45ad42d63362b4c91fd2ef0dc3f0f1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Aug 17 16:28:29 2012 +0200

    build: handle bad gcc -dumpversion output

    `gcc -dumpversion` usually prints major.minor - but on sunos it prints
    major.minor.patch.

commit a7f7696a8d69676fef06c622313649798cff7b5c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Aug 17 15:19:40 2012 +0200

    unix: remove UV_REQ_BUFSML_SIZE

commit 894b0fc0a7b6fd97869ed13682449d18fd4f1090
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Aug 17 14:48:51 2012 +0200

    unix: move platform init out of loop.c

    Move platform-specific initialization logic out of loop.c and into the
    platform files (freebsd.c, sunos.c, etc).

commit 1b929bfff5be0c03826e3855cb5e1fd3d6421ac7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Aug 16 23:29:01 2012 +0200

    windows: readable tty handles need access to console output

    Readable tty handles need to be able to update the virtual window,
    so if uv_tty_t is initialized with a console input fd, additionally
    open the console output.

commit 88634c1405097c19582e870d278dd0e29dc55455
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Aug 16 23:05:59 2012 +0200

    windows: separate uv_tty_t read state from write state

commit 7cf1b67594e354593b5e37b8381df89067368aaf
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Aug 16 22:50:33 2012 +0200

    windows: small style fix in uv-win.h

commit 22ce5a34122245d2f4d63abe7ceb5218eb55f337
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Aug 16 14:43:39 2012 +0200

    sunos: fix uv_cpu_info() on x86_64

    kstat_data_lookup("clock_Mhz") returns a KSTAT_DATA_INT32 on i386 but a
    KSTAT_DATA_INT64 on x86_64.

commit 90a75b0d8485d802a69056e7e63ae1ce749c69de
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 15 23:08:31 2012 +0200

    include: update uv_timer doc comments

commit 938a30589cd72f482b15df7290101ffc6e226e05
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 15 03:07:26 2012 +0200

    windows: tweak formatting inside uv-win.h

commit 7cd400ef10bb727be9ff8e5e55affb435610a30f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 14 18:20:25 2012 +0200

    unix: report exit_status==-1 when execve() fails

    Call exit_cb with exit_status==-1 when spawning a new process with uv_spawn()
    fails.

commit 54bfb66806a3f94f44243030ad51a10db6c9eb29
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 14 17:00:25 2012 +0200

    linux: improve /proc/cpuinfo parser

    Make uv_cpu_info() understand the ARM and MIPS versions of /proc/cpuinfo,
    it only knew how to deal with the x86 version

    This commit also fixes a buglet where uv_cpu_info() reported the maximum CPU
    frequency instead of the actual CPU frequency. That is, before this commit
    `out/Debug/run-tests platform_output | grep speed | sort | uniq -c` on my
    system always reported:

          8   speed: 3400

    Now it reports (for example):

          2   speed: 3400
          6   speed: 1600

    In other words, two CPUs are running at full speed while the others have been
    scaled back because they're mostly idle.

    Fixes #526.

commit f4f294f7c666d7c0e092a8aab7a632a932583400
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 14 12:45:18 2012 +0200

    linux: remove bogus comment in linux-core.c

commit 7fb43d3c5ba1079e57bcf8aaa598dcbac41451d0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 14 01:04:43 2012 +0200

    windows: move uv_atomic_exchange_set to atomicops-inl.h

commit 4442ddcaaedc7efc70bd5636363c481b58528f91
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 14 00:19:19 2012 +0200

    windows: fix formatting issue in uv-win.h

commit 7c3ba514e7897ee78f1a95e071e5451bb5b03cd9
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 13 22:19:03 2012 +0200

    windows: use WCHAR consistently

commit aa69f34d53dfa0897aa00a7a1f0e97b3f6947d9b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 13 22:11:07 2012 +0200

    windows: report spawn errors to the exit callback

    Formerly spawn errors would be reported as a message printed to the
    process' stderr, to match unix behaviour. Unix has now been fixed to
    be more sensible, so this hack can now be removed.

    This also fixes a race condition that could occur when the user closes
    a process handle before the exit callback has been made.

commit 80eae821049009eee6abd65a2a991a5a2beb4572
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 13 22:11:50 2012 +0200

    test: spawn failures are reported by setting the exit code to -1

commit 3f1f11f33827f9053400248ac5a64cca88732fb3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 13 22:03:58 2012 +0200

    windows: use UV_ECANCELED to signal canceled requests

    This used to be UV_EINTR, but that's not an appropriate error code in
    this situation.

commit 1b8307637babf749dde04149b4055fdf813c92c7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 13 22:02:45 2012 +0200

    test: fix intermittent failure of tcp_unexpected_read on windows

commit c85672eb136899e249ec6efe336e802ca450e027
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 13 22:19:41 2012 +0200

    test: avoid compiler complaints about implicit double-to-int cast

commit 762c85c3ef6abf27a189131f0a8b9fc629acec16
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 13 22:31:33 2012 +0200

    windows: un-break the build

commit 758a76922beca511a4b086e45269896607df8a3c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Aug 13 16:36:29 2012 +0200

    unix: fix SIGCHLD race in process.c

    Start the SIGCHLD signal watcher before calling fork(). There was a very subtle
    race where a child process could quit (and generate a SIGCHILD) before the
    signal handler was installed.

    To reproduce, call uv_spawn() repeatedly with the below x86_64 program:

        // compile with `gcc -O2 -nostdlib`
        void _start(void)
        {
          // syscall(SYS_exit, 0)
          __asm__ __volatile__ (
            "xorq %rdi, %rdi;"
            "xorq %rax, %rax;"
            "mov $0x3c, %al;"
            "syscall;"
          );
          for (;;);
        }

commit 9d7e30036405317812229f15e207ddf382a51be5
Merge: ac0d468 2c3e8b6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Aug 13 15:51:12 2012 +0200

    Merge branch 'v0.8'

commit 2c3e8b6aa6427797af7afc003ea4a539577d5fa1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Aug 13 15:29:09 2012 +0200

    build: rework -fvisibility=hidden detection

    Make the gcc_version macro conform with what node.js and v8 use. Important
    because node.js's common.gypi is going to export it soon.

commit ac0d46851ae0eccd5131207234e08cd2ed2ed681
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Aug 12 00:37:26 2012 +0200

    unix: work around darwin bug, don't poll() on pipe

    poll() on newer versions of OS X sets POLLHUP|POLLIN whereas older versions
    (and other Unices) only set POLLHUP. It was tripping up a check that expected
    to read data when POLLIN was set.

    While easy to work around, I switched it to a blocking read instead:
    it's less code and avoids surprises like the one above altogether.

    Fixes #522.

commit 23dc564f3bafb3bcd4c00a687c74f77e3a306846
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Sat Jul 21 12:49:35 2012 +0400

    darwin: emulate fdatasync() with fcntl(F_FULLFSYNC)

    OS X has no public API for fdatasync. And as pointed out in `man fsync(2)`:

      For applications that require tighter guarantees about the integrity of
      their data, Mac OS X provides the F_FULLFSYNC fcntl. The F_FULLFSYNC
      fcntl asks the drive to flush all buffered data to permanent storage.
      Applications, such as databases, that require a strict ordering of writes
      should use F_FULLFSYNC to ensure that their data is written in the order
      they expect.  Please see fcntl(2) for more detail.

commit 837edf4c0f60aa6384b4ed1f7bf2ca58d1db58fc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Aug 10 01:55:21 2012 +0200

    unix, windows: remove handle init counters

    Remove the handle init counters, no one uses them.

commit caa79af2ad6cc46c9ce414f6c213e3978ae6f68f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Aug 10 01:45:40 2012 +0200

    unix: rework uv_eio_init() init once logic

    Don't use counters.eio_init to track if libeio has been initialized, it's going
    to be removed in a follow-up commit.

commit 75ba6819135d4bd3a7ed93ad5f625d56c65e3102
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 8 14:42:34 2012 +0200

    unix: remove dependency on ev_child

commit ee50db6e36d97d62d4e52ca2097b06664b794135
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jul 10 02:13:49 2012 +0200

    unix, windows: preliminary signal handler support

    * a no-op on Windows for now
    * only supports the main loop on UNIX (again, for now)

commit 5143d54ad36a020ddbe0d44ea9c98c06e31186e6
Author: Trond Norbye <trond.norbye@gmail.com>
Date:   Tue Aug 7 12:22:28 2012 +0200

    Allow inclusion of <uv.h> with Sun Studio compiler

    The Sun Studio compiler did not define any of the symbols used to determine if
    the system was a unix-like system or not causing it to include the windows
    header.

commit cbb930024fc86aaf4edfbce71ea39b5ea520e973
Author: Trond Norbye <trond.norbye@gmail.com>
Date:   Tue Aug 7 10:20:11 2012 +0200

    Allow headers to be included with -Werror and -Wundef

    Users of the library may enforce a stricter set of compiler warnings causing
    their builds to fail due to warnings emitted from the headers.

commit d4737abd6d1c9348fd2e69aa27d796a148a58219
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 8 22:49:27 2012 +0200

    unix: remove dead code in process.c

    uv_spawn() saves and restores the environ in case the child clobbers it -
    which is impossible because the child process runs in a separate address space.

commit 47f496aa65fd5e380df2f5e2d3a9c66e0b3fbb7d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 8 18:50:32 2012 +0200

    unix: simplify stdio handling in process.c

commit 13467a40d403446e85dc80c6c7570b92f75eaa6f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 8 18:28:16 2012 +0200

    unix: retrieve execve() errors in process.c

    Make the forked child process send the errno to its parent process when it
    fails to spawn a new process.

commit bf28aa4e784785ea4f92dd250b82e24535d5a1df
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 8 14:44:36 2012 +0200

    unix: drop SPAWN_WAIT_EXEC guard in process.c

    Code cleanup. This "experimental" feature was always enabled anyway, might as
    well remove the define guard.

commit a1157cef3741984bd3b3d9564defadb35bccd20a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 8 02:24:48 2012 +0200

    windows: don't duplicate invalid stdio handles

    Ref: joyent/node#3779

commit 21f2c1629a242c0d61fcadd485542b8ec22d6988
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Aug 8 02:18:02 2012 +0200

    include: fix macro formatting

commit 00d2f22151d5812a58cbae3df8b12e0a52f70e97
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 8 02:18:53 2012 +0200

    windows: fix typos in process-stdio.c

commit f3720243421ea1ee925dd629e6dffef8b37bd9eb
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 7 22:01:24 2012 +0200

    include: link to Nikhil Marathe's libuv ebook

commit f97c80fa98924f21ee12061023862b397bc2cf35
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Aug 7 21:26:02 2012 +0200

    unix: fix const correctness compiler warning

commit 41b1265af8329131154539cb0d1eda57758b62be
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 7 00:59:14 2012 +0200

    Rip out c-ares

commit a06995699622fd25125373e1992b8ceffd85efb1
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 7 00:34:36 2012 +0200

    Remove c-ares integrations

commit 35c4858231b6f38d16e9c8a64cb0f14e9c1919b4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 7 00:30:34 2012 +0200

    Remove c-ares tests and benchmarks

commit 3a8bb3b2b1aae1d254eee0da62f55a2a8e921011
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 6 23:55:19 2012 +0200

    Use uv_inet_ntop/uv_inet_pton, instead of the c-ares implementations

commit 32f93e14cbeea53ac8e2fc1dc77207dc6b251003
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Aug 6 23:54:09 2012 +0200

    Add libuv-ified versions of inet_pton and inet_ntop

commit 3b46285ff8dee216666b98e508b21392c351b75a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Aug 7 01:01:50 2012 +0200

    windows: remove libeio mentions from Makefile

    Libeio is not used on Windows.

commit 32da23988bd451b4e8dbf32cc17ba652824f5112
Merge: 9f7cdb2 dfb6be0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sun Aug 5 23:51:04 2012 +0200

    Merge branch 'v0.8'

    Conflicts:
    	src/unix/sunos.c

commit dfb6be0e07f298fb6def24078ca6ed5bb3a0eba3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Aug 3 17:37:22 2012 +0200

    windows: map WSANO_DATA to UV_ENOENT

    This improves uv_getaddrinfo error reporting.

commit 9f7cdb20aa29c99a0917ca776bc705f5ef947737
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jul 29 03:07:39 2012 +0200

    unix: add relaxed accept() setting

    Mitigates unfair scheduling in multi-process setups that share a single listen
    socket across multiple processes.

commit 6209fe51f0e539a30a7dc3a0770e8c78439c93e3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 1 01:09:07 2012 +0200

    windows: invalid stdio handles should be INVALID_HANDLE_VALUE and not NULL

commit 109e176ae2b353df8c0ccd07ce26efb4fac326ef
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Aug 1 00:31:31 2012 +0200

    windows: only allow opening directories for reading

    This is closer to the Posix model.

commit 69c2ef8acc01da9497e687a5fd25cad971fe69ef
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jul 31 21:08:26 2012 +0200

    windows: initialize uv_fs_t.path to NULL

    This shouldn't be necessary, but node v0.8 relies on it.

commit 9d71d1cab5fbed7d96cb03a58887f052b01ccc3e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jul 31 19:38:43 2012 +0200

    windows/uv_spawn: ignore errors when duplicating fd 0-2 fails

    Hopefully this fixes joyent/node#3779.

commit ed2bc23346ac1a665668e3328c62782f47ee3dbe
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jul 31 17:00:15 2012 +0200

    windows: fix the MinGW build

commit 7f6b86c6879e67d1c07260f72b4e368c1c27a5ee
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jul 31 16:52:31 2012 +0200

    windows: improve uv_fs_unlink

    * It's now more efficient, the file is not opened twice.
    * It no longer allows deletion of non-symlink directory reparse points.

commit 7edc29a41419b478f1388bf3e0d1d88d8672bf49
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jul 31 16:51:11 2012 +0200

    windows: fix regression in uv_fs_link

    Old and new path were accidentally reversed.

commit d192a317aa3388de5cb59b9ebe0a1057f7aaafc9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jul 31 16:55:31 2012 +0200

    sunos: workaround OS bug to prevent fs.watch() from spinning

    This is a back-port of commit cfb06db from the master branch.

    Fixes joyent/node#3768.

commit cfb06db5e5998571efeef54dc40484d11610dbbf
Author: Bryan Cantrill <bcantrill@acm.org>
Date:   Sun Jul 29 20:51:40 2012 -0300

    sunos: workaround OS bug to prevent fs.watch() from spinning

    Fixes joyent/node#3768.

commit 8f66bfcee05f12e59aa70d0154ef329c03f10530
Author: Alan Gutierrez <alan@prettyrobots.com>
Date:   Mon Jul 30 14:05:13 2012 -0400

    doc: add 'Intro to libuv' link to README

    Add a link to 'An Introduction to libuv' to the documentation section of
    README.md. Format the section as a bullet list.

commit 4168855da57f4f7b2552cbf3f718761ab7f47e77
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jul 30 14:26:50 2012 +0200

    include: move ssize_t workaround to uv-win.h

commit 514265ec6ec79365f8e691b6a02ed9bb6ae128cd
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jul 30 23:52:22 2012 +0200

    windows: fix memory leaks in fs

    Also clean up the code in various ways.

commit 4eccb2ee525d5d5872ce185b59ba4f48f27af9a4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jul 30 14:26:50 2012 +0200

    include: move ssize_t workaround to uv-win.h

commit 1d5eb914742962b75ed868f19ee712fad266dfc0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jul 30 11:00:37 2012 +0200

    Avoid compiler warning

commit be1032431d500d492e94e556bb5e3cf67000a713
Merge: 9123482 4fe1916
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jul 29 03:13:21 2012 +0200

    Merge branch 'v0.8'

commit 4fe1916926f9e0deb904179e55501da426cd434f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jul 28 16:11:59 2012 +0200

    linux: fix 'two watchers, one path' segfault

    Problem: registering two uv_fs_event_t watchers for the same path, then closing
    them, caused a segmentation fault. While active, the watchers didn't work right
    either, only one would receive events.

    Cause: each watcher has a wd (watch descriptor) that's used as its key in a
    binary tree. When you call inotify_watch_add() twice with the same path, the
    second call doesn't return a new wd - it returns the existing one. That in turn
    resulted in the first handle getting ousted from the binary tree, leaving
    dangling pointers.

    This commit addresses that by storing the watchers in a queue and storing the
    queue in the binary tree instead of storing the watchers directly in the tree.

    Fixes joyent/node#3789.

commit ec76a42515156364f9dc57d4b85acca47fedc2ca
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jul 28 14:56:36 2012 +0200

    test: add uv_loop_t to benchmark-sizes.c

commit 4fe369b179024f539637dc0255e454c405310444
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jul 28 14:47:20 2012 +0200

    test: add uv_fs_event_t to benchmark-sizes.c

commit b5b8ead8089ed3eef039c68bccd8021cfc092446
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jul 28 14:40:01 2012 +0200

    test: add failing fs_event test

    Watches the same file twice. Fails on Linux with a segmentation fault.

commit 912348261e68b520caf00e79d2d6bc26aaa6e1ce
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jul 27 16:04:13 2012 +0200

    include: update confusing uv_write comment

commit cf05c5f0d6af680e535743b262a8701bd96a05f5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jul 27 15:13:27 2012 +0200

    Raise UV_ECANCELED on premature close.

    Set the error code to the more appropriate UV_ECANCELED instead of UV_EINTR
    when the handle is closed and there are in-flight requests.

commit 9f59e8e38c2fbc04043cd1131ef3dc2f6bd331ba
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jul 27 14:44:06 2012 +0200

    include: update uv_close documentation

commit 22f004db61c11f63ed07da2a326c7edbbfee5730
Author: Shuhei Tanuma <shuhei.tanuma@gmail.com>
Date:   Sat Jul 21 22:29:55 2012 +0900

    unix: don't abort() when trylock functions return EBUSY

    Fixes #500.

commit 94355e4718a788c5f2d97f1d9da34cbcd2c74b03
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jul 13 17:07:11 2012 +0200

    unix: fix format string vulnerability in freebsd.c

    uv_set_process_title() was susceptible to a format string vulnerability:

      $ node -e 'process.title = Array(42).join("%s")'
      Segmentation fault: 11 (core dumped)

    The fix is trivial - call setproctitle("%s", s) instead of setproctitle(s) -
    but valgrind complains loudly about reads from and writes to uninitialized
    memory in libc. It's not a libuv bug because the test case below triggers the
    same warnings:

      #include <sys/types.h>
      #include <unistd.h>

      int main(void)
      {
        setproctitle("%s", "test");
        return 0;
      }

    That's why this commit replaces setproctitle() with sysctl(KERN_PROC_ARGS).

    This commit reapplies commit a9f6f06, which got reverted in 69a6afe. The revert
    turned out to be unnecessary.

commit ff59525c7e70b0c1c1ba11ed65ad3f1c6ddf92f1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jul 19 16:25:49 2012 +0200

    unix: fix uv_pipe_connect() with existing fd

    Don't create a new socket descriptor if one has been previously assigned with
    uv_pipe_open().

commit e3a28508b230b902f996045c0f852d1d728b5724
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jul 19 16:13:42 2012 +0200

    unix: fix errno reporting in uv_pipe_connect()

    Remember the errno when the socket() syscall fails.

commit 69a6afea63faba510e83cefb53cf4cd77d8dcd6f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jul 18 22:49:49 2012 +0200

    unix: undo changes to uv_set_process_title()

    It's making node.js crash when run as root. Backtrace:

      (gdb) bt
      #0  0x00007fff856e3ff9 in __findenv ()
      #1  0x00007fff856e404c in getenv ()
      #2  0x000000010004c850 in loop_init (loop=0x10045a792, flags=8) at ev.c:1707
      #3  0x000000010004cb3b in ev_backend [inlined] () at /Users/tjfontaine/Development/node/deps/uv/src/unix/ev/ev.c:2090
      #4  0x000000010004cb3b in ev_default_loop (flags=1606417108) at ev.c:2092
      #5  0x000000010004e5c6 in uv__loop_init (loop=0x10066e330, default_loop=1) at loop.c:52
      #6  0x0000000100044367 in uv_default_loop () at core.c:196
      #7  0x0000000100004625 in node::Init (argc=1606417456, argv=0x100b0f490) at node.cc:2761
      #8  0x000000010000797d in node::Start (argc=1606417600, argv=0x0) at node.cc:2888
      #9  0x0000000100000ca4 in start ()

    This reverts commits:

      b49d6f7 unix: fix uv_set_process_title()
      a9f6f06 unix: fix format string vulnerability in freebsd.c
      a87abc7 unix: avoid buffer overflow in proctitle.c
      dc97d44 unix: move uv_set_process_title() to proctitle.c

commit b49d6f7c30420d843a84c7afbe6c3498fbc3ac57
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jul 18 00:22:06 2012 +0200

    unix: fix uv_set_process_title()

    Use strncpy() to set the process title, it pads the remainder with nul bytes.
    Avoids garbage output on systems where `ps aux` prints the entire proctitle
    buffer, not just the characters up to the first '\0'.

    Fixes joyent/node#3726.

commit a9f6f06feaf02ebb48d4b41bd2ac47fcb2096a00
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jul 13 17:07:11 2012 +0200

    unix: fix format string vulnerability in freebsd.c

    uv_set_process_title() was susceptible to a format string vulnerability:

      $ node -e 'process.title = Array(42).join("%s")'
      Segmentation fault: 11 (core dumped)

    The fix is trivial - call setproctitle("%s", s) instead of setproctitle(s) -
    but valgrind complains loudly about reads from and writes to uninitialized
    memory in libc. It's not a libuv bug because the test case below triggers the
    same warnings:

      #include <stdio.h>
      #include <stdlib.h>
      #include <sys/types.h>
      #include <unistd.h>

      int main(void)
      {
        setproctitle("%s", "test");
        return 0;
      }

    That's why this commit replaces setproctitle() with sysctl(KERN_PROC_ARGS).

commit a87abc7070dee4b7896c3c499bc3f0ba0a600b5a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jul 13 15:03:37 2012 +0200

    unix: avoid buffer overflow in proctitle.c

    Get/set process title with uv_strlcpy(), not strncpy(). The latter won't
    zero-terminate the result if the destination buffer is too small.

commit dc97d44c561c2e2b6a38d78ae814f4df7e8e20b5
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Wed Jul 11 19:54:29 2012 +0400

    unix: move uv_set_process_title() to proctitle.c

    Use hijacking argv array to change process' title. It seems to be working fine
    on almost every platform (at least it should not break anything as it's used in
    nginx in a similar way).

commit 3726dee5e932563bdfce5b545023efe326b18544
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Sun Jul 8 11:44:05 2012 -0400

    unix: thread: use mach semaphores on osx

commit ad382bcac0d01e53759a82ac35988917043d37e6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jul 9 18:46:57 2012 +0200

    test: add missing return statement

commit c5761f72b32b8d524df0d961102741050c551ae0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jul 9 02:46:19 2012 +0200

    unix: speed up uv_async_send() some more still

    __sync_val_compare_and_swap() emits a CMPXCHG instruction on i386 and x86_64.
    Use XCHG instead, it's about four times faster.

commit be09be7f3efd349d3bb9e7ed07d08b9155cabbb1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jul 4 14:06:35 2012 +0200

    unix: fix memory corruption in freebsd.c

commit 68b0c85c0958e7b057c28c2ef0c50dfb632a28aa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jul 3 21:25:10 2012 +0200

    test: allow 80 ms intervals in hrtime test

    The hrtimer functionality on my FreeBSD 9 system is fairly coarse, it's usually
    just over the 60 ms that we tested for before this commit.

commit 5031a5b85a3f22836d41a2e86620ed72836c8824
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 18:31:29 2012 +0200

    unix: rename linux/core.c to linux/linux-core.c

    This is a back-port of commit e1320757 from the master branch.

    Newer versions of gyp do not support files with the same basenames (example:
    core.c and linux/core.c).

    The nominal reason is consistency across build systems. Apparently, msbuild
    doesn't support it either.

    Somewhere, someplace, baby Jesus cries sad little tears...

    Fixes #464.

commit 3d9c1ebfeb3fe37a368fd8ab7e94ebcf411878ab
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jul 2 04:27:22 2012 +0200

    unix: speed up uv_async_send() some more

    Use atomic compare-and-swap to detect if we've been preempted by another thread
    and therefore can avoid making the expensive write() syscall.

    Speeds up the heavily contended case by about 1-2% and has little if any impact
    on the non-contended case. I wasn't able to measure the difference at any rate.

commit a2204abc8eae243ca10ad1555f9934b41a02efc1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jul 2 03:56:18 2012 +0200

    bench: improve async_pummel benchmark

    Benchmark the performance of uv_async_send() when the handle is contended for
    by 1, 2, 4 or 8 threads.

commit cc1b3de2473231edfb8a078e90c2cbb14392316e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jul 2 00:00:20 2012 +0200

    unix: revert 0971598, obsoleted by 889ab21

commit 889ab216aeffa6ea3ceee946cdff04f8c9e5041a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jul 1 23:54:24 2012 +0200

    unix: fix 'zero handles, one request' busy loop

    Fixes #484.

commit 3b8c0da5a53b47174e173d2cba3c824d307b20c4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 30 03:10:08 2012 +0200

    unix: fix busy loop on unexpected tcp message

    Don't start reading immediately after connecting. If the server sends a message
    and the client hasn't called uv_read_start() yet, the event loop will busy loop
    because the pending message keeps waking it up.

commit 1d1dd9bb7dc0da40296ab02e011b610bca4d93c5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 30 02:59:29 2012 +0200

    test: add 'unexpected read' tcp test

    Regression test that verifies that the event loop doesn't busy loop when
    the server sends a message and the client isn't reading.

commit 0971598d025a4ef13430912e7b5cb931438a2333
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 19:16:40 2012 +0200

    unix: fix EINPROGRESS busy loop

    Don't make the event loop spin when connect() returns EINPROGRESS.

    Test case:

      #include "uv.h"

      static void connect_cb(uv_connect_t* req, int status) {
        // ...
      }

      int main() {
        uv_tcp_t handle;
        uv_connect_t req;
        struct sockaddr_in addr;
        addr = uv_ip4_addr("8.8.8.8", 1234); // unreachable
        uv_tcp_init(uv_default_loop(), &handle);
        uv_tcp_connect(&req, (uv_stream_t*)&handle, addr, connect_cb);
        uv_run(uv_default_loop()); // busy loops until connection times out
        return 0;
      }

    After EINPROGRESS, there are zero active handles and one active request. That
    in turn makes uv__poll_timeout() believe that it should merely poll, not block,
    in epoll() / kqueue() / port_getn().

    Sidestep that by artificially starting the handle on connect() and stopping it
    again once the TCP handshake completes / is rejected / times out.

    It's a slightly hacky approach because I don't want to change the ABI of the
    stable branch. I'll address it properly in the master branch.

commit 1a6b6b781c1b30ed6ff694d934c7dac4f975cf81
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 18:43:44 2012 +0200

    unix: deduplicate socket creation code in tcp.c

    Incidentally fixes a rather obscure bug where uv_tcp_connect() reconnected
    and leaked a file descriptor when the handle was already busy connecting,
    handle->fd was zero (unlikely) and uv_tcp_connect() got called again.

commit e4a68bb5cb1eff1df1358d348b33e973eb9962d9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 18:21:50 2012 +0200

    unix: move uv__connect() to tcp.c

commit 700f1333e157b37566dd7ed0c3bb889f8473d0c8
Merge: e9b17bc 7628b65
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 29 06:05:06 2012 +0200

    Merge branch 'v0.8'

commit 7628b6597e0d585668a8ed2da182b9fd3c5901db
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 29 05:44:20 2012 +0200

    test: fix test-gethostbyname to not use a DNS server on localhost

    Because, you know, not everybody has one.

commit e9b17bcc65daf2c68022a1c49cde5b243d3429ad
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 29 05:23:30 2012 +0200

    Revert "test: improve clean-up in test-fs-event"

    There were too many errors in this commits; it totally broke on
    Windows. Besides, when the moon is dark, the cleanup code could delete
    some random files from my hard drive.

    This reverts commit 7573f4a4c4072fe90b448fe748bf27e53bee1c30.

commit 5ee80f1a7a07eac257e497833c9db58ee5d8ba3a
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Thu Jun 28 08:48:54 2012 +0200

    c-ares: ignore rogue DNS servers reported by windows

commit 15cfcfd309526cb687c677124f33dea6e4d14cb9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 25 06:27:39 2012 -0700

    c-ares: libuv-ify c-ares

commit 3e425ab9ba813c700f337f27585312bc058bd6a1
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Wed Apr 25 05:30:47 2012 -0700

    c-ares: upgrade to 1.9.0

commit 937d2c93ea2c826ae579ae93b7c2745c4b950cc6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sun Apr 29 03:40:03 2012 +0200

    test: fix test-gethostbyname to not use a DNS server on localhost

    Because, you know, not everybody has one.

commit 4c87666a9363ab01010c426e1b7dfb432dec844e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 03:17:04 2012 +0200

    unix: speed up uv_async_send()

    Don't make a syscall when the handle is already pending.

    Speeds up the async_pummel benchmark by about 13%.

commit c89df5b99095b1555d12249532b1f340a4dda773
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 03:16:06 2012 +0200

    bench: add another async handle benchmark

commit f90d428b2962ecd30dcd31ef802517c51fd77337
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 02:32:48 2012 +0200

    test: fix unused function warning

    exit_cb_unexpected() is only used on Windows.

commit 13747033f8a2ee03b232606995d3a4035446d0fa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 02:32:35 2012 +0200

    test: remove unused function poll_cb_fail()

commit 3b209e76425eaf7f9375c9938452ff3f255d4345
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 28 19:04:39 2012 +0200

    bench: add async handle benchmark

commit 123ca8b87e73ad7f613e44f0d4fac65c7468862e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 28 19:03:53 2012 +0200

    test: make fmt() function global

commit b779a0db74297e7577953b6e8d509b0fe2290818
Merge: c6f2ef2 5b8a112
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 02:28:57 2012 +0200

    Merge branch 'v0.8'

commit 5b8a1127fedb80a282f2587f6b0ccae2b591ff36
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 28 19:01:34 2012 +0200

    darwin: compile at -O0 in debug builds

commit f6a02fbe763aec5d290aa9d9509aeec5348c7792
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 02:23:39 2012 +0200

    linux: don't use accept4() syscall after ENOSYS

    Repeatedly calling the syscall when it's not supported has a small but
    measurable performance impact.

    Besides, it's a silly thing to do.

commit 27cd5f03ef26b32b0043ae67bb2dae9dabda60bf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 29 02:11:38 2012 +0200

    linux: fix accept4() ENOSYS detection on i386

    accept4() piggybacks on the socketcall() on i386. socketcall() has the flaw
    that it returns EINVAL instead of ENOSYS when the operation is not supported.

    The problem is that accept4() also returns EINVAL when its flag argument is
    invalid.

    Try to discern between the two failure cases to the best of our abilities.

commit 4a88b3b4b72de79d8a6f3107a200f6f960f475a7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Jun 28 05:07:18 2012 +0200

    windows: don't inhibit reparse behavior when non-symlink is encountered

    This fixes the issue that a mount point would be treated as a
    symlink, but readlink would subsequently return an NT namespaced
    path that is unusable for many purposes.

    This also pre-emptively fixes the problems that would arise when
    an user has a reparse point whose tag is neither
    IO_REPARSE_TAG_MOUNT_POINT nor IO_REPARSE_TAG_SYMLINK.

    Finally uv_lstat() will now return the correct length in st_size.
    Previously the length was computed incorrectly for relative
    symlinks, and those that had non-ascii characters in their target.

commit 1b6843482a3c9834b82b138e8823bc3dae5c7d2d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 28 01:35:45 2012 +0200

    unix: assume that dlopen() clobbers dlerror()

    Or rather, don't assume that dlopen() does *not* clobber dlerror().

    Joe Ferner reports that loading libjava on OS X sets dlerror() even when
    dlopen() succeeds, which makes uv_dlopen() raise an error when it shouldn't.

    I haven't been able to reproduce it but it's possible that libjava clobbers
    dlerror() by trying (and failing) to load other libraries.

    At any rate, Joe confirmed that this patch addresses the issue.

    Fixes #462.

commit 4d42af20e389fa3c3fa63dcd57883071421d25b8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jun 26 18:25:54 2012 +0200

    unix: don't create connect req when connect() fails

    Fixes a lifecycle issue where the req got created, added to the list of active
    reqs but wasn't properly activated because uv__connect() returned early.

commit 5a0f3411fcceefa1561d1e7b58e0df23057e7ceb
Author: Roman Neuhauser <rneuhauser@suse.cz>
Date:   Mon Jun 25 10:55:46 2012 +0200

    unix: map ENODEV to UV_ENODEV

    produces better error message from test-dgram-multicast-multi-process
    when run w/o network.

    before:

    === release test-dgram-multicast-multi-process ===
    Path: simple/test-dgram-multicast-multi-process
    dgram.js:287
        throw new errnoException(errno, 'addMembership');
              ^
    Error: addMembership Unknown system errno 19
        at new errnoException (dgram.js:356:11)
        at Socket.addMembership (dgram.js:287:11)
        at Object.<anonymous> (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.runMain (module.js:487:10)
        at process.startup.processNextTick.process._tickCallback (node.js:244:9)
    [PARENT] Worker 9223 died. 1 dead of 3

    dgram.js:287
        throw new errnoException(errno, 'addMembership');
              ^
    Error: addMembership Unknown system errno 19
        at new errnoException (dgram.js:356:11)
        at Socket.addMembership (dgram.js:287:11)
        at Object.<anonymous> (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.runMain (module.js:487:10)
        at process.startup.processNextTick.process._tickCallback (node.js:244:9)

    [PARENT] sent 'First message to send' to 224.0.0.114:12346
    dgram.js:287
    [PARENT] sent 'Second message to send' to 224.0.0.114:12346
        throw new errnoException(errno, 'addMembership');
    [PARENT] sent 'Third message to send' to 224.0.0.114:12346
              ^
    [PARENT] sendSocket closed
    [PARENT] Worker 9224 died. 2 dead of 3
    Error: addMembership Unknown system errno 19
        at new errnoException (dgram.js:356:11)
        at Socket.addMembership (dgram.js:287:11)
        at Object.<anonymous> (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.runMain (module.js:487:10)
        at process.startup.processNextTick.process._tickCallback (node.js:244:9)
    [PARENT] Worker 9225 died. 3 dead of 3
    [PARENT] All workers have died.
    [PARENT] Fail
    Command: out/Release/node /home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js

    after:

    === release test-dgram-multicast-multi-process ===
    Path: simple/test-dgram-multicast-multi-process
    dgram.js:287
        throw new errnoException(errno, 'addMembership');
              ^
    Error: addMembership ENODEV
        at new errnoException (dgram.js:356:11)
        at Socket.addMembership (dgram.js:287:11)
        at Object.<anonymous> (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.runMain (module.js:487:10)
        at process.startup.processNextTick.process._tickCallback (node.js:244:9)
    [PARENT] Worker 13141 died. 1 dead of 3

    dgram.js:287
        throw new errnoException(errno, 'addMembership');
              ^
    [PARENT] sent 'First message to send' to 224.0.0.114:12346
    [PARENT] sent 'Second message to send' to 224.0.0.114:12346
    [PARENT] sent 'Third message to send' to 224.0.0.114:12346
    [PARENT] sent 'Fourth message to send' to 224.0.0.114:12346
    [PARENT] sendSocket closed

    dgram.js:287
        throw new errnoException(errno, 'addMembership');
              ^
    Error: addMembership ENODEV
        at new errnoException (dgram.js:356:11)
        at Socket.addMembership (dgram.js:287:11)
        at Object.<anonymous> (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.runMain (module.js:487:10)
        at process.startup.processNextTick.process._tickCallback (node.js:244:9)
    [PARENT] Worker 13142 died. 2 dead of 3
    Error: addMembership ENODEV
        at new errnoException (dgram.js:356:11)
        at Socket.addMembership (dgram.js:287:11)
        at Object.<anonymous> (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.runMain (module.js:487:10)
        at process.startup.processNextTick.process._tickCallback (node.js:244:9)
    [PARENT] Worker 13143 died. 3 dead of 3
    [PARENT] All workers have died.
    [PARENT] Fail
    Command: out/Release/node /home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js

commit c6f2ef25c62bc539db205b321cd7eacfb0c0bdcc
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Tue Jun 26 22:26:16 2012 +0900

    uv.h: add members to any-union of handle and req

commit f3fd8e3c1bf91be635ebee118ebe475c632a32c0
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Mon Jun 25 14:51:52 2012 -0700

    test: prevent running the tests as root

commit 7573f4a4c4072fe90b448fe748bf27e53bee1c30
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Mon Jun 25 14:00:15 2012 -0700

    test: improve clean-up in test-fs-event

    Failed tests would leave behind extra files, and some tests weren't cleaning up
    properly in the first place - this adds a cleanup_watch_dir() helper method to
    make all the fs-event tests more consistent.

commit a416a585b25c51a3ded8be2fc7b3bf4559be7279
Merge: 34fb759 d0816aa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 25 16:53:29 2012 +0200

    Merge branch 'v0.8'

commit d0816aae5267bcfd09a052bfd9ea2ef91a6bdbee
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 25 16:49:56 2012 +0200

    sunos: fix free() of non-malloc'd pointer

commit 431d61af31ef84de3b9caa18e276574489f7ae77
Author: saghul <saghul@gmail.com>
Date:   Sun Jun 10 00:49:13 2012 +0200

    win: map ERROR_PRIVILEGE_NOT_HELD to UV_EPERM

commit 34fb759508fe05ccef6631edb5126d93f07e08c5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 25 03:58:17 2012 +0200

    Update AUTHORS

commit aec320b76ce18f022ce683f99b9fc759f66f46c5
Author: Xidorn Quan <quanxunzhen@gmail.com>
Date:   Mon Jun 25 09:14:27 2012 +0800

    darwin: get cpu model correctly on mac

commit 0005b52b705634ae2b09470bb06df1128a870fb8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 25 01:25:00 2012 +0200

    Update uv_getaddrinfo_cb prototype.

    Make it clear that the first argument is a req, not a handle.

commit 0fde10825e0cc65fa476738a74e631c2aab0752b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jun 24 06:04:29 2012 +0200

    linux: set close-on-exec flag with ioctl(FIOCLEX)

    ioctl(FIOCLEX) is 25% faster than fcntl(F_SETFD) on a stock 2.6.32 kernel.

commit e21cdf1e0d373ccaf01e0103e76882dcb1623fab
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 23 04:08:05 2012 +0200

    unix: malloc only once in uv_getaddrinfo()

commit 61f04877a77dd47973b2c2178a9b5b644e55284f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 23 01:20:51 2012 +0200

    Update uv_getaddrinfo() documentation.

commit d831e52e4547a6df9216f96e66057429e92691d3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 22 20:44:08 2012 +0200

    uv: now working on v0.9

commit 82340e96ccec1af60cabaa6921dda2f626d8d444
Merge: f91e6be 0387c23
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 22 20:43:23 2012 +0200

    Merge branch 'v0.8'

commit 0387c23759e7ad1f7158ce69ce3185495c902c43
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 22 19:18:10 2012 +0200

    windows: don't use CRT functions to implement (f)utimes and (f)stat

commit 3da9504beb0a3208d25fe979c5639a2ae8a89742
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 22 19:16:45 2012 +0200

    windows: map ERROR_INVALID_HANDLE to UV_EBADF

commit d0950dd491e7adb6800986ec4f1517e0693c6ec9
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 22 19:16:59 2012 +0200

    windows: whitespace fixes

commit f91e6be07d16e4775dceaf2da7a0e8bd894276ba
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 19:04:41 2012 +0200

    linux: add epoll syscalls

commit e132075738d6543956a8c3457ae1a9c87e9a587c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 18:31:29 2012 +0200

    unix: rename linux/core.c to linux/linux-core.c

    Newer versions of gyp do not support files with the same basenames (example:
    core.c and linux/core.c).

    The nominal reason is consistency across build systems. Apparently, msbuild
    doesn't support it either.

    Somewhere, someplace, baby Jesus cries sad little tears...

    Fixes #464.

commit 120a4af3eb5aaba96ff0cbd369784237189e0dda
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 15:19:12 2012 +0000

    sunos: remove unused field event_watcher

commit 42df4cb7f6f3e8f3b4fc311eaa45f2c1b40de93d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 15:15:20 2012 +0000

    sunos: fix use of pid_t in format string

commit 2a5ff050dd05f899074a3a46fbe7e6f6172c1b5a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 15:10:43 2012 +0000

    sunos: replace bzero with memset

commit c222f075c31fd52bd7aa05098337093b1e36a9cf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 15:09:56 2012 +0000

    sunos: replace ev_io with uv__io_t

commit f01e9d708a110767f4629eaa3cf952b2d80c96bc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 16:39:20 2012 +0200

    unix: clarify that uv_getaddrinfo_t is a req

commit 171e2f71b90f21b5989deb1f2a1abb70561c6232
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 22 15:43:14 2012 +0200

    Update libuv version macro.

commit ea3e2cd48085203595a22d5e63b987215b97e534
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 22 01:45:19 2012 +0200

    windows: get rid of overly complicated uv_filetime_to_time_t helper

commit d169ba1a1b02966f3b3ac316af28f17d25cd63b2
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 22 01:16:52 2012 +0200

    Make the stat benchmark run shorter

    Man, Windows is so slow...

commit 5dc024f67656118a26442ff9f58b75cbeb56aa98
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 21 22:28:28 2012 +0200

    bench: add thread pool I/O benchmark

commit da59427c66ff04bf693284e726efa75661ea5f26
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Jun 21 02:37:44 2012 +0200

    windows: don't set WT_EXECUTELONGFUNCTION for fs operations

commit 14ffaa668d41ce265c8591a5ce40fe3b57ad8d43
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 20 16:22:18 2012 +0200

    unix, windows: stat: never pass NULL to cb

    Never pass NULL to the fs_poll callback, use a zeroed out statbuf instead.

    Makes the interface a little more convenient to use.

commit 6e8eb33249f7956f5ee82d80d801084e1d43411f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Jun 20 03:32:55 2012 +0200

    windows: abort accept requests when a shared tcp server is closed

    Just closing the listening socket handle does not cancel AcceptEx
    operations when another handle is keeping the underlying socket
    open. Thus the AcceptEx operations have to be explicitly canceled
    in uv_tcp_close.

commit b496c1221c3816f06a3fcd3e8c3efedcf6eb8445
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 19 21:11:17 2012 +0200

    windows: reserve some room for zero-read minibuffer

commit 67090653df479088ac9d15f29f268ecca810a53d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 19 19:19:53 2012 +0200

    windows: set the child_pid property for all IPC pipes in uv_spawn

commit 382f2a262bc0e643063415775b7081cedd0e94e1
Author: isaacs <i@izs.me>
Date:   Mon Jun 18 10:25:56 2012 -0700

    sunos: allow suppression of ifaddrs.h

    Older Solaris versions do not have this feature.  This allows
    them to set SUNOS_NO_IFADDRS to allow libuv to build.

    Re: joyent/node#3465

commit 61a6e06ec2e26093ad67ce1a04380d68ab3a5511
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Tue Jun 19 00:02:56 2012 +0400

    sunos: fix assertion errors in uv__finish_close

commit c1d8e011f4c19333a014d6c5db9907bfd423c44b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 18 17:06:50 2012 +0200

    linux: fix typo in syscall name

commit 6d67cf1952d5bc5f416de58af604b8037f0d6e4f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 15 18:23:09 2012 +0200

    unix, windows: update uv_fs_poll API

    * the callback gets called only once on error, not repeatedly...

    * ...unless the error reason changes from e.g. UV_ENOENT to UV_EACCES

    * the callback receives pointers to uv_statbuf_t objects so it can inspect what
      changed

commit 7ca524e133b197c88916004e66fc62b9358ae385
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 15 15:54:02 2012 +0200

    unix: stat: detect sub-second changes on darwin

commit 5ff2b6121f1786964583dccd904a7a117835bb37
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 15 15:26:55 2012 +0200

    unix: stat: detect sub-second changes on linux

commit cc7c8542a52d11cc9b94882dc9d9dffef6b3fa3e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 14 07:30:08 2012 +0200

    unix, windows: add stat() based file watcher

    Monitors a file path for changes. Supersedes ev_stat.

commit 9a3dff35c019f021835c20eb09ed3f0995fb3940
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Jun 14 22:41:13 2012 +0200

    test: make the test-hrtime less likely to time out

commit b1649b6f77a3d4bad40a7d2e280c84681b0ea81e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Jun 14 21:18:12 2012 +0200

    windows: prevent accidental inheritance of sockets pending acceptance

commit 5d5688f24188b8e34e8e82ab41fbb4cdb3f3e305
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Jun 14 17:28:03 2012 +0200

    unix: always set CLOEXEC flag for child process stdio FDs

commit 2c983fb99489383e12b046a5682b5b12b00d9d19
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 14 03:47:26 2012 +0200

    unix: fix memory leak in libev

    Not everything that identifies itself as glibc really is glibc.

commit 4d7f1e1864983c9ffc76a52af3346777806767ee
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 14 01:19:56 2012 +0200

    unix: implement uv_disable_stdio_inheritance()

commit ade693024195716504416a2bbf3c87df05fb2022
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Jun 14 01:19:52 2012 +0200

    windows: implement uv_disable_stdio_inheritance

commit 94cb06fecfb27ca252e1a4a2ac83488ff1787f23
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 14 00:46:57 2012 +0200

    unix: make uv__nonblock() EINTR resilient

    It's underspecified if and when ioctl(FIONBIO) or fcntl() can return EINTR.
    Let's take the safe route.

commit b3a97f89812b19b67a35906ad4ca7eb850be28f0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 14 00:44:58 2012 +0200

    unix: make uv__cloexec() EINTR resilient

    It's somewhat underspecified if and when fcntl() can return EINTR. It never
    does on Linux for F_GETFD or F_SETFD but let's not make any assumptions.

commit 07c6ac2b553bfd7420fa62ecc1733c2ae28cfb0d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Jun 13 19:17:13 2012 +0200

    windows: move child stdio buffer ops to a separate file

commit 9f44b0e393f69aa85285eba836a822d3ca909516
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Jun 13 01:30:31 2012 +0200

    windows: fix serious typo in init_child_stdio

commit 95e89c6a0efec2d2228377cfdf55cd14b1b83536
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 13 01:17:33 2012 +0200

    unix, windows: share uv__handle_init()

commit b7e150ee917c07509515e1a7051fd8336c8f3e57
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 12 16:57:56 2012 +0200

    windows: uv_kill() should report UV_ESRC when the victim is already dead

commit 048422d8654fd0804522f97f36179ecf3cfc5b15
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 12 16:56:48 2012 +0200

    windows: fix some comments

commit 84f0d96ae04bc2c75b2f4bc6946ee781df5457c4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jun 12 01:45:50 2012 +0200

    unix: reset error status in uv_dlopen()

    Fixes a bug where uv_dlopen() mistakenly reported failure because of previous
    errors.

commit e0c6114e32c1c79b6dca15654af90f8a741e1ce7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 11 17:13:31 2012 +0200

    windows: remove run-time RB_INSERT check from release builds

commit 3b417d10bce2492fdceeee9d03c0a96f6706693a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 9 20:06:16 2012 +0200

    linux: add eventfd and eventfd2 syscalls

commit 78bc0d61342d9c0f78c0a53d25668c53cb52fa00
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 11 04:13:57 2012 +0200

    unix: implement async handles in libuv

    Replace libev backed async handles with a pure libuv implementation.

commit ddb5f559228eec66231bd1f0e001fa591b51e7c2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 11 02:47:39 2012 +0200

    unix: simplify uv__make_pipe() and uv__make_socketpair()

commit 5c304435559edb6d401d506e1ea606d6068a1487
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 9 22:19:53 2012 +0200

    unix: uv_async handles should not be unref'ed automatically

commit fbe99743d5889a72112e1ce33af9e490bd39a677
Author: George Yohng <georgegh@oss3d.com>
Date:   Sat Jun 9 22:30:18 2012 +0200

    windows: uv_interface_addresses() should not report disconnected adapters

commit 0ae026dc841e3c04ea2d285e17cd472d52d0ddbf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jun 9 18:42:06 2012 +0200

    bench: add lots-of-timers benchmark

commit c92788e503c3eabd6b21c6c91e1abdea27238699
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Sat Jun 9 14:12:53 2012 +0200

    test: fix test runner progress bar

    Make % completed indicator actually show % completed instead of 0 %.

commit 6a47e3ac7c0ad6582b16f7283b1e959e9813ed5c
Author: saghul <saghul@gmail.com>
Date:   Fri Jun 8 19:33:26 2012 +0200

    windows: add missing include for limits.h

commit b5a15f5cdf4679775bd9e6baf0568d97dd588170
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 8 03:10:35 2012 +0200

    test: fix test-tcp-shutdown-after-write bug

    It was calling uv_read_start before the uv_connect call had completed.
    Although we want to allow this in the future, right now it's not
    supported.

commit 23b4e38d206dff24de67470493e31ca06b18be29
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jun 8 02:47:13 2012 +0200

    unix: make uv_shutdown() return UV_ENOTCONN

    Return UV_ENOTCONN when the stream is not connected, not UV_EINVAL. Aligns
    with uv-win.

commit dea45940cd9436c27cba273535aabbcf86fd27d1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 7 18:32:06 2012 +0200

    unix: fix req cb / close cb invoke delay

    Finalization of closed handles and associated requests was sometimes delayed
    until an external event (network I/O, timeout, etc.) happened. This commit
    addresses that.

commit 9cb8bdc74edef8e3503c260a2f07150d211a48a9
Author: Mark Cavage <mark.cavage@joyent.com>
Date:   Thu May 31 15:36:57 2012 +0000

    sunos: uv_interface_addresses needlessly #ifdef'd out

commit 053d3afcbf6ae0eb9d777c96ba8276e4806274cf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 7 16:26:36 2012 +0200

    Make ngx_queue_foreach() impl more explicit.

commit 59cda867091fcbd9e0455eaf4b034db57588b0e9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jun 7 15:40:14 2012 +0200

    unix, test: make NANOSEC a 64 bits unsigned int

    Avoids accidental overflow / truncation when it's used in 32 bits arithmetic.

commit e2aa39aecfa5efd1fbeeb589220201b529430776
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Thu Jun 7 12:58:11 2012 +0900

    test: change uv_hrtime() test to iterate upto 100

commit b47af98e00f8d2e2c2edc1ee39bd14b2fa1ace7e
Author: Iñaki Baz Castillo <ibc@aliax.net>
Date:   Wed Jun 6 16:00:53 2012 +0200

    test: add tcp 'close on failed connect' test

    Demonstrates temporary event loop stall with uv-unix. The issue is that pending
    requests aren't processed until the next event (I/O, timeout, etc.) happens.

    See #446, #447 and #448.

commit 649ad50c328851444998e3d2dea66ba5b48fe64b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 6 05:12:28 2012 +0200

    unix: fix event loop stall

    Undoes most of the changes made to libev in 7d2ea31 and c9396dd.

commit 6fe753022ff878fbc2925d763670e286c99c26a9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jun 6 04:24:33 2012 +0200

    unix, windows: add debug mode handle printer

    Debugging tool, prints a list of active/all handles. Not actively exported.

commit 24f8a53f4ca74f4dc2405dfe897598ec86bf2133
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 5 18:19:03 2012 +0200

    windows: refactor uv_chdir implementation

commit a0d2af0fd23bfc107e12aadb6ce2d6d98cb1e13f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 5 18:18:27 2012 +0200

    windows: detect when GetCurrentDirectoryW returns more than MAX_PATH chars

    This should never happen. However the CRT has a code path to deal
    with this situation, so at least detect it when it happens and return
    an error, instead of potentially opening a security hole.

commit c8c9fe1c747d6955686c1cec21bda53c2e5592b8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jun 5 15:42:17 2012 +0200

    unix: move memset out of recvmsg inner loop

commit 738b31eb3aff440ae75ff9f32ba61086a948c3f4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jun 5 15:09:05 2012 +0200

    unix: fix loop starvation under high network load

    uv__read() and uv__udp_recvmsg() read incoming data in a loop. If data comes
    in at high speeds, the kernel receive buffer never drains and said functions
    never terminate, stalling the event loop indefinitely. Limit the number of
    consecutive reads to 32 to stop that from happening.

    The number 32 was chosen at random. Empirically, it seems to maintain a high
    throughput while still making the event loop move forward at a reasonable pace.

commit be9d1ce909c079d1be4fb77e59f5cbf0f0c57286
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 5 00:05:08 2012 +0200

    windows: cast STARTUP_INFO.cbReserved2 to WORD to avoid warnings

commit 829eaf3e3f496eb11d9b25de995747a3aaed39e6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jun 5 00:04:16 2012 +0200

    windows: cast OVERLAPPED.Internal to NTSTATUS to avoid warnings

commit 1b75d36babd866532b4f2be22f842664cc487051
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 19:05:15 2012 +0200

    windows: refactor uv_exepath implementation

commit c9f83e524cc1b357d5fbd7845f08339cd3cba21a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 19:04:40 2012 +0200

    windows: refactor uv_cwd implementation

commit 7d2ea316183ba29a8ab5883593d1f6ee6f8f8ae3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 4 23:18:32 2012 +0200

    unix: fix event loop stall

    Stop libev from entering the epoll_wait/kevent/port_getn/etc. syscall when
    there are no active handles left, that will block indefinitely.

commit 0dff0e7d47453fafb72a287c0acdddd6e3f2d9de
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 18:02:35 2012 +0200

    test: avoid compiler warnings due to size_t truncation

commit 64f8cf463d92a7d566dc1f1942175917dd41c930
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 18:00:39 2012 +0200

    windows, unix: uv_buf_init should take `unsigned int` for the buffer length

commit c0b530d0798aeceeedfaa8bc74556e5da3a2e549
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 16:43:00 2012 +0200

    Windows: avoid compiler warning

commit 60746b03cbe67bbbe506cf6682e14d0566b26b0b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 16:25:28 2012 +0200

    windows: move some stream functions to stream-inl.h

commit 754a695df68b0a8146d8447ef2092048a954090c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 16:30:52 2012 +0200

    windows: move request macros to req-inl.h

commit 63b9b1d47266d5c150fb72e6f38893c98a6b2847
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 16:30:12 2012 +0200

    windows: move handle macros to handle-inl.h

commit 1974541bc933c21e559ceb18ada06b0939e23a43
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 16:37:47 2012 +0200

    windows: guard against including req-inl.h more than once

commit 3b907cf0ec1cab7244069ae4395830da98925de0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jun 4 16:37:20 2012 +0200

    windows: guard against including handle-inl.h more than once

commit d08070435ddcc834b663c1c5b7bc0995db87e8e6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 4 17:18:02 2012 +0200

    test: rename test tcp_dont_connect_after_write

    Rename test tcp_dont_connect_after_write to tcp_connect_error_after_write,
    teensy tad more descriptive.

commit 76fa1631175b58400b06c8e30812db7bfd4aff1e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 4 17:12:16 2012 +0200

    test: add a 'write before connect' test

commit cb9ca142b51906d85605e2af285821ddb27d6140
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 4 16:55:04 2012 +0200

    unix: queue write reqs if stream is not connected

commit a30e45f1d709cee2f3807cc461f250dab2d89630
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Sat Jun 2 23:40:32 2012 +0700

    unix: remap fds 0-2 to /dev/null if ignore flag set

commit 97801c63157eb1969db4251f98d74c2601675490
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 4 16:07:08 2012 +0200

    test: disable tcp_dont_connect_after_write on windows

    For now. See #444.

commit b96ed68f46fb89d7595a83319282c17da12ee78d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jun 4 15:58:30 2012 +0200

    test: add TCP connect error + write test

    Original test contributed by Iñaki Baz Castillo. See #443.

commit c76c2066c64a3bd390e63eb08a00b0a0c106f445
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jun 3 03:17:21 2012 +0200

    unix, windows: add semaphore functions

commit 7d97ba80030ddf41946354a88e2f81cfacca949d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jun 3 04:01:26 2012 +0200

    unix: make mutex sanity checks non-optional

commit c03964f8400e70de1fa4ad913e4e64f027774916
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jun 3 03:52:22 2012 +0200

    unix: set PTHREAD_MUTEX_ERRORCHECK in debug mode

commit 28ed730bfbc3798eaddbc9d5d5438feb8deeb14f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Jun 3 01:17:22 2012 +0200

    test: fix implicit function declaration warnings

    Fixes the two following compiler warnings:

      ../test/run-tests.c: In function ‘maybe_run_test’:
      ../test/run-tests.c:117: warning: implicit declaration of function ‘write’
      ../test/run-tests.c:118: warning: implicit declaration of function ‘fsync’

commit d8b95eaffbfbfc58dc7991554c8e669c6cd9f7d5
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 23:38:16 2012 +0200

    windows: inline a couple of handle functions

commit d402604118cc76b0099083d0a82a774bc23cd05c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 23:08:22 2012 +0200

    windows: inline a couple of inline request functions

commit ed30365f543819e70769df96ef2c5b018681960e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 23:06:43 2012 +0200

    uv-common: define INLINE macro

commit dd1355da8dd5de14ff5174a4ab048bde593d4b8c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 22:36:52 2012 +0200

    windows: stop poll watcher when watched socket is closed locally

commit 1cd9642cbb2c6d2acac80d686e1471d4daa20048
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Sat Jun 2 21:34:21 2012 +0200

    test: stdin/out/err should be set to /dev/null when ignored

commit bdb8b3a1f2b0fd6782c5b98870e7ab4f65b3f42d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 21:17:03 2012 +0200

    windows: always set FDs 0-2 for spawned child processes

commit 4a07b8b7bd32c22758fa30803bd55790fe79e01a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 21:12:10 2012 +0200

    test-poll: make spurious wakeup detection slightly less strict

commit 619686e9e98318e0a45dde473a4f984216baa3d6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 21:05:06 2012 +0200

    windows: fix fall-through bug in init_child_stdio()

commit d21fc6c333c383fb2fbec1f2fc587d459c4ea47c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 20:37:08 2012 +0200

    windows: move uv_hrtime() to util.c

    * It has nothing to do with timer handles, so it doesn't belong in
      timer.c
    * uv_hrtime_init() was merged into uv__util_init()

commit ec95a07d00d358290328dc3c682433d9ec37ceaa
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 20:35:14 2012 +0200

    windows/util: move initialization code to uv__util_init

commit cd1298c38807d9a2cd546612fed2fa58da708220
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 20:20:51 2012 +0200

    windows: retrieve function pointers before doing anything else

commit 1d64a36caa04f47f9ee34c06e2602d3a5c0f7d31
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 20:01:33 2012 +0200

    windows: add support for cpu times to uv_cpu_info()

    * Also cleans up the code and makes it use unicode APIs consistently.
    * Credits go to Brian White for creating an earlier version of this
      patch.

    Closes #327

commit 4252240e5403cdadc6b0515e53788d04deb1c5bc
Author: Brian White <mscdex@gmail.com>
Date:   Sat Jun 2 20:04:44 2012 +0200

    windows: add uv__once_init() that ensures that libuv has been initialized

commit 87f3530a1e4330317bd1e694afc596e155b412ae
Author: Brian White <mscdex@gmail.com>
Date:   Sat Jun 2 20:02:05 2012 +0200

    windows: retrieve NtQuerySystemInformation at startup

commit 120d99780929118ca499fcab77e274ce35a4ca45
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 17:39:31 2012 +0200

    windows: fix NTSTATUS redefined when compiling with MinGW

    Closes #403
    Closes #422

commit 961e0cf8da69c6268a7c49c67c5dca089e6989b5
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Jun 2 03:05:19 2012 +0200

    windows/tty: never report error after forcibly aborting line-buffered read

commit 38a6f9f0d969bb44634b7d81fd49cfe608989234
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 1 18:53:11 2012 +0200

    test: fix windows-ism in test-poll-close.c

commit 07f01752393f9b40a739f9bdcc5327699f9398ed
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 1 18:33:02 2012 +0200

    windows: fix hang when closing an active poll handle

commit 9759c20e90654be3dc057899357cff940c216b52
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 1 18:30:17 2012 +0200

    test: verify that closing an active poll handle doesn't hang

commit 87dbffbd8f4410a894df0b9b9a8d28aa42d49174
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 1 17:49:29 2012 +0200

    windows: fix undefined function warning in run-tests.c

commit 3ec9c67f935adfd3515acaa1c5ec5222fbdc6f94
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 1 17:47:20 2012 +0200

    windows: improve spawn stdio support

    * Make using an existing stream for stdio actually work
    * Support up to 256 stdio channels
    * Fix some minor bugs

commit dc7a62d114a3986c9474b3d1d55b986307c64b09
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Thu May 31 22:56:23 2012 +0400

    test: test for uv_spawn with stdio_count == 3

commit f5b5127db0f3677b7c8e71df5cbc197369615660
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Thu May 31 17:50:28 2012 +0400

    change spawn() api to allow using existing streams for stdio

    This commit also adds support for this api on Unix.

commit 528123ad9ae8ae09da29174590dc7fb3592dfe9b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 1 03:05:31 2012 +0200

    windows: fix bugs in uv__fast_poll_cancel_poll_req

commit 04a7e5c274aac955269d82e7c47fafbc2bd6560f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jun 1 02:26:25 2012 +0200

    test-spawn.c: remove unused variable

commit 69a923bf9386c8731d343604281e6632424032e7
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Thu May 31 17:19:27 2012 -0700

    process: implement UV_PROCESS_DETACHED flag for uv_spawn

commit aecddfe530bc3add35131f13d0b48a9c032d582b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 31 17:32:26 2012 +0200

    windows: style fix

commit 0c727fd7747d1532352bb622e689f2efe576e532
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 31 17:30:25 2012 +0200

    windows: don't crash

commit c9396dd57e9ed366d65208fed2237dd469e95535
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 31 00:47:04 2012 +0200

    unix: implement timers in libuv

    * replace libev backed timers with a pure libuv implementation
    * gut ev_run() and make it take a timeout instead of flags

    Incidentally speeds up the loop_count_timed benchmark by about 100%.

commit 3f37ba859f401349b75581a75a5c46040d29dbef
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 31 02:38:13 2012 +0200

    bench: add new idle loop count benchmark

commit 71a66c17a1a7038cc358fb73193c063a524160a6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 30 02:08:15 2012 +0200

    unix: mark eio poll handles as internal

commit 171ad8567da60bbc61d159f67e45da934db7228e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 30 01:51:28 2012 +0200

    unix, windows: add uv_walk()

    Lets the libuv user iterate over the open handles. Mostly intended as a
    debugging tool or a post-hoc cleanup mechanism.

commit 122cd946954fab4ef8102805175f7832095680ef
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 30 01:34:11 2012 +0200

    unix: remove unused flag UV__PENDING

commit 9d26f49725be64e588012d995c66fe312ad92f70
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 30 01:14:43 2012 +0200

    unix, windows: rename flags UV__ACTIVE, UV__REF

    Rename UV__ACTIVE and UV__REF to UV__HANDLE_ACTIVE and UV__HANDLE_REF to make
    it clear that they apply to handles, not requests or loops.

commit 58a272e5563754eb51ef54d76f8ab3db1300c731
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 30 00:08:22 2012 +0200

    unix: rework pending handle/req logic

commit 12ee388cd9d8578ef4b403e3b8144611ecd7c513
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue May 29 17:34:48 2012 +0200

    test: clean up test-loop-handles.c

commit ec0c7b8958f30b84b2dd21d030b11007983b5888
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue May 29 17:34:16 2012 +0200

    test: fix double close in test-loop-handles.c

commit 75565907073055dd717fb6a6074518cafdd9355d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 29 00:53:04 2012 +0200

    win/process.c: stdio fd should default to ignore

commit 18e622d43e053330c4d6f002fb4e9ddae5812574
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon May 28 22:03:41 2012 +0000

    unix: fix indentation in sunos.c

commit 81aff9363357b4174a8528bc259d3d4ca277c7e7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon May 28 22:22:11 2012 +0200

    win/process.c: remove unused function duplicate_std_handle

commit 4690204682664f42169e5875794d4b906ef6fdf4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon May 28 21:53:21 2012 +0000

    unix: fix getaddrinfo bad pointer deref

commit c0081f0e6675131721dbb5138fd398792a8c2163
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Wed May 9 20:15:05 2012 +0700

    unix: allow specifying FDs to be inherited by a child process

    Previously the only option was to create a pipe or an ipc channel. This
    patch makes it possible to inherit a handle that is already open in the
    parent process. It also makes it possible to set more than just stdin,
    stdout and stderr.

commit 5a34f19970086b248646e1907207144a72773a14
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue May 15 11:26:16 2012 -0700

    windows: allow specifying FDs to be inherited by a child process

    Previously the only option was to create a pipe or an ipc channel. This
    patch makes it possible to inherit a handle that is already open in the
    parent process. There is also room for setting more than just stdin,
    stdout and stderr, although this is not supported yet.

commit e4f23aacece124a1a5e706390beda6c800f6efa0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon May 28 01:53:22 2012 +0200

    Get rid of UV_LEAN_AND_MEAN

commit 2ec09862e4f94230945f7700a0ae5de09577c11f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon May 28 00:24:37 2012 +0200

    unix, windows: set active flag on unref'd handles

    A logic bug in uv__handle_start() and uv__handle_stop() stopped the active flag
    from getting set (or unset) on unref'd handles.

commit 028fef84b8244501f644732b83a2faaef3600820
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat May 26 02:09:35 2012 +0200

    unix: update timer if already active

    uv_timer_start() no longer returns an error when the timer is already active,
    now it just updates the timer. Consistent with the uv-win implementation.

    Fixes #425.

commit ae9d4c2aabb01691bd7eecacbf65e5a82b611b64
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat May 26 01:57:49 2012 +0200

    test: add 'is active?' checks to test-timer.c

commit 34445d0741d06c43befe4b83e87ba4086e4cee9b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat May 26 01:42:40 2012 +0200

    test: remove stale UNIX socket before running test

    Fixes spurious test and benchmark failures.

commit 28766dcf559d4f4ecd4ee55198d4bf7c8fd6aaaa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri May 25 01:31:46 2012 +0200

    test: remove test-eio-overflow.c

    Unreliable, it's timing / system load sensitive.

commit ce28e13038226d609ad1c1e747e699fd738e5871
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri May 25 01:24:17 2012 +0200

    unix: remove unused __attribute__((unused))

commit 604802ad47f4d0b2a015a62b08f0d1427be7fd87
Author: isaacs <i@izs.me>
Date:   Thu May 24 19:31:29 2012 +0000

    Fix sunos build: undeclared variable 'handle'

commit 793a52f5df9c587e36bc1e39ea9f4aa776c92e6e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 24 16:00:35 2012 +0200

    unix: pack uv structs more

    Try to avoid alignment holes on x86_64. Shaves off 4-8 bytes from most structs.

commit 752ac30ec820bc0ef4dfea698fd7119a8a4aa14c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 24 14:31:50 2012 +0200

    unix: don't pass sockaddr to accept()

    Shaves a few nanoseconds off the accept() syscall.

commit cff2221fbfca2c3f21cc46afa0c68a9e59810725
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 23:45:08 2012 +0200

    unix: split up loop.c

    Move prepare/check/idle watcher code to loop-watcher.c so it can be reused for
    the linux backend.

commit 890d4435580f037825070a60fcc34fdbc9f15cb1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 23:19:38 2012 +0200

    unix: shave about 100 bytes off uv_udp_send_t

commit e71495c84a4323158a348f5bd43af542f307a1b1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 22:48:56 2012 +0200

    unix: turn field stream->blocking into a flag

    Saves 4 bytes.

commit 5fd2c406f1a990f5f4c081b92d3108a0c999848e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 22:19:11 2012 +0200

    unix: fix up asserts in core.c and stream.c

commit b69f8efee12880e0460a7a564b4e5f66e3babf9f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 21:17:17 2012 +0200

    test: remove stale socket in ipc_send_recv_pipe

    Fixes spurious test failures.

commit 2609e4363217a7cb7d5efded542fd486461b4784
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 21:18:31 2012 +0200

    unix: remove unnecessary functions in udp.c

commit 2b09cc2246a339ffd36ced6b9c79916e08353389
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 21:08:40 2012 +0200

    unix: fix up asserts in udp.c

commit cd2a9b4d5925920534072482f96130c577be17c0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 21:05:41 2012 +0200

    bench: measure ticks per second of idle event loop

commit 7c8313bd0f8580fe21e7b4ad0d17e9d57bdf247f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 20:30:59 2012 +0200

    unix, windows: make uv_run_once() return a bool

    The return value of uv_run_once() now signals if it needs to be called again.

    Fixes #427.

commit 3604b8ddd3e8fa314b6e868b78ba21891229fe4d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 13:59:56 2012 +0200

    unix: don't unlink UNIX socket on EADDRINUSE

    It was a bad idea to start with...

commit 2e3e658be1b89d23cad4c126d7e84e2ca1177586
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 12:52:42 2012 +0200

    unix: fix uv_poll CPU usage spike

    Saúl Ibarra Corretgé reports that calling uv_poll_start() repeatedly results
    in CPU usage spikes. Fixed by stopping the poll I/O watcher before updating it.

    Fixes #424.

commit b19a713cfcf30dc4c087f85a6900f84faafb746e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 12:51:15 2012 +0200

    test: fix unused variable warning

commit 5b9c45120a39a0cda53cd806e8b1815b896c5d03
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 03:51:29 2012 +0200

    unix: fold uv__io_cb into ev_io struct

    Makes the uv__io code a little more obscure but has the advantage that
    sizeof(uv__io_t) == sizeof(ev_io), i.e. the sizes of embedding handles
    don't change.

commit 3bc970705490f139f7b8a13549644f119f2078f4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 03:39:25 2012 +0200

    unix: replace ev_io with uv__io_t

    Replace ev_io usage with wrapper constructs.

    This is preliminary work for the transition to a libev-less linux backend.

commit 7a64ec49ffa391f96bff4edfc24f5ca1176f1fc7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 23 01:46:38 2012 +0200

    test: clean up test-tcp-writealot.c

    Avoid unnecessary heap allocations, makes it easier to reason about correctness.

commit 2df831723fad25d2d97b824b2e52c65082af2723
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue May 22 16:32:17 2012 -0700

    windows: set flags for uv_fs_symlink

commit 253d718572aaf4ee144f10b20cac0a3768c40f45
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue May 22 15:58:01 2012 -0700

    report correct error

commit 0ef7844b877bc060e0c16ff4855dee66b6e9433e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 22 17:13:04 2012 +0200

    Disable test-callback-order

    It's not correct.

commit d1665792ca22d30b60319199662a0399be9f1352
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 22 15:52:37 2012 +0200

    Get rid of UV_HANDLE_TYPE_PRIVATE

commit 58ba2d86e136d2d1180f4d3054384266afa04456
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 22 15:51:37 2012 +0200

    Move shared c-ares glue code from uv-common to cares.c

commit c06edd4c8838af8891583aa907073f255bad8c8e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 22 01:41:59 2012 +0200

    windows, unix: share c-ares glue code

commit 25316a3f921ace8f62a84974f976235fb0cd5976
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 22 02:49:17 2012 +0200

    Make the gethostbyname benchmark more precise

commit a478847f747b1af3fc0acfd657e5b49c66ffb3e7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue May 22 16:04:09 2012 +0200

    test: add callback order test

    Ensure that idle callbacks run before other callbacks.

commit 80b554129b613b4ca30a50e985bb49eb764ba152
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue May 22 14:25:35 2012 +0200

    unix: reactive new idle watcher implementation

    The new idle watcher was temporarily disabled in 073a48d due to some semantic
    incompatibilities with the previous implementation. This commit resolves those
    issues and reactivates the new implementation.

    One outstanding bug is that idle watchers can run in a different order
    (relative to other handle types) than the old implementation, e.g. (timer, idle)
    instead of the expected (idle, timer). This will be fixed in an upcoming commit.

commit 6190caba05694d5ec81a4c97528a3088966fe125
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue May 22 15:08:21 2012 +0200

    unix: remove outdated comment

commit ea8fa31fc0c9865c91a8872c15610d80d5ac93c4
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue May 22 00:23:26 2012 -0700

    fix fs_symlink_dir test

commit ad279df7c08d01b8c683090e955bf628a8aa3bc1
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 22 01:01:38 2012 +0200

    Unix: remove superfluous variable from uv_poll_start

commit 6fd9bfb7b062412ad9b57a5eea0f880aee3f450b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon May 21 17:32:38 2012 +0200

    unix: fix event loop block, prepare/check invoke

    Don't block in epoll_wait() / kevent() / etc. syscall unless there are active
    handles. If there are only active requests, do a non-blocking poll.

    Likewise, don't run the prepare and check watchers unless there are active
    handles *or* requests.

commit d27a62deff49ec61c6ec96298c4f1b9f524f8f61
Author: Frank Denis <github@pureftpd.org>
Date:   Sun May 20 22:43:06 2012 -0700

    unix: fix build on dragonfly bsd

    Unbreak compilation on Dragonfly BSD, that uses kqueue, too.

commit e82d46452e3db141d3875286cf90be0de6d724e0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri May 18 01:16:29 2012 +0200

    unix: fix close-before-connect bug

    Closing the TCP socket before the SYN/ACK handshake completed hung the event
    loop, the connect req didn't get unregistered.

commit e10a87adb9054750a38cd9cedf398fe513accc9c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri May 18 01:16:06 2012 +0200

    unix: streamline shutdown req cleanup logic

commit 744704898166eac6eb0a759e016fb27eca2de60f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 17 11:44:05 2012 +0200

    test: enable tcp_connect_error_fault test

commit 538a562cdba319aec83690e709a400c7cac2cd3b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 17 11:43:33 2012 +0200

    test: add tcp connect timeout test

commit 073a48d6bf8705ca4a8e93920acdbe5c52f7ea5b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 17 08:27:00 2012 +0200

    unix: back out new idle watcher for now

    Its semantics don't quite match what node.js expects. This breaks the
    stdio_over_pipes and shutdown_close_pipe tests but that can't be helped.

commit 60af28ababe8c2b6e76e04ee888d2ff77ab7216c
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue May 8 15:44:11 2012 -0700

    windows: support junctions with uv_fs_synlink
    based on @piscisaureus implementation

commit 9efa8b35713ae2a1c2ba2300e54492861f1af1e5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 17 06:28:46 2012 +0200

    unix, windows: rework reference counting scheme

    This commit changes how the event loop determines if it needs to stay alive.

    Previously, an internal counter was increased whenever a handle got created
    and decreased again when the handle was closed.

    While conceptually simple, it turned out hard to work with: you often want
    to keep the event loop alive only if the handle is actually doing something.
    Stopped or inactive handles were a frequent source of hanging event loops.

    That's why this commit changes the reference counting scheme to a model where
    a handle only references the event loop when it's active. 'Active' means
    different things for different handle types, e.g.:

     * timers: ticking
     * sockets: reading, writing or listening
     * processes: always active (for now, subject to change)
     * idle, check, prepare: only active when started

    This commit also changes how the uv_ref() and uv_unref() functions work: they
    now operate on the level of individual handles, not the whole event loop.

    The Windows implementation was done by Bert Belder.

commit 07622e767d1d67f0eb3e07b0e00b63e8020d50fa
Author: Frank Denis <github@pureftpd.org>
Date:   Wed May 16 07:21:15 2012 -0700

    unix: change #if FIONBIO to #ifdef FIONBIO

    Fixes compilation on Debian/ppc 6.0.4.

commit ad024040fcb6101b5ca6efbc9265accdee7e2c2d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat May 5 18:37:49 2012 +0200

    test: prevent accidental division by zero

commit 985b961d4eab778857101b17b62f9e521d43a157
Author: Andrius Bentkus <andrius.bentkus@gmail.com>
Date:   Sat May 5 17:05:12 2012 +0200

    Put POLL into the handle_map, so handle_size returns the size of it correctly.

commit b5f9bc861fa97cf7a3ddd8f05422c034e744a539
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat May 5 00:51:32 2012 +0000

    sunos: make fs.watch scale better

    Instead of using one port per watch, use one port for all the watches.
    This is a cherry-pick of commit 7326962 from v0.6 into master.

    Conflicts:

    	include/uv-private/uv-unix.h
    	src/unix/core.c
    	src/unix/sunos.c

commit 1d24c76df7dcf06fb2edcd4320cced7ad7a7b198
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat May 5 00:05:36 2012 +0200

    Windows: fix MinGW

    MinGW's headers are missing a definition for SIO_BASE_HANDLE

commit 436589692148a87d1d0e55d2641288a4fe913b22
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri May 4 14:31:48 2012 -0700

    Windows: skip GetFileAttributes call when opening a file

    It wasn't working, and everything seemed to work fine nonetheless. Removing it just saves a syscall.

commit b750dec517ae5da70d07a51e02586184f1259168
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri May 4 13:54:02 2012 -0700

    Windows: fix iocp emulation bugs for tcp handles

    Makes ipc_tcp_connection pass on Windows XP

commit ef9a9f1f7834b6ea04ba398be49983600bc7d46b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri May 4 13:02:55 2012 -0700

    Tests: make test-tcp-write-error pass on XP

commit 6037684ef8b3b1bf88fcf76e2cf5bf4cdc7a5be9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri May 4 15:01:22 2012 +0200

    unix: zero out new loop struct

    Fixes spurious segfaults in pyuv.

commit ce129ac6e29d5b2c81797dac6e00292800a0088e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 3 19:33:54 2012 +0200

    windows: remove unused variables

commit 395e256889836e5b36c954e2bd1629fad7931fe2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu May 3 19:39:37 2012 +0200

    unix: don't use setlocale()

    setlocale() is not inherently thread-safe. We'll have to live with the fact
    that test/test-dlerror.c fails on systems with localized error messages.

commit 5d19aa84f0ee2895d5d427cd8a3918d362b93ffb
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Apr 29 23:46:14 2012 +0200

    unix, win: rework uv_dlopen() API

commit 93d16e6a841972b343af051e3a78e2d164bcfa72
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Apr 29 21:35:31 2012 +0200

    unix: change uv_dl*() error code

    Return UV_ENOENT instead of UV_EINVAL. UV_EINVAL was arbitrarily chosen and
    turns out to be inconsistent with the Windows implementation.

    Fixes #395.

commit acd0afb29677015f67609cb298b6807697f5a6e4
Merge: e387554 b9504f7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 3 16:14:02 2012 +0200

    Merge branch 'poll'

    Closes: #316, #401
    Ref: #265, #349

commit b9504f7987ce6e4979d1c3edc0aceb8f9d592409
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 3 16:02:21 2012 +0200

    Rename uv_platform_socket_t to uv_os_sock_t

commit 444ab19be8aee6f167e84a500e4d488d52d82277
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:23:16 2012 +0200

    Benchmarks: add size of uv_poll_t to benchmark-sizes

commit beaf7507002a9f94cce9b30cbbdb108a64d8a5cd
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:26:21 2012 +0200

    Test: add tests for uv_poll

commit d60d94e0c36cc45ab32773e3a7c47173a784e1f9
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu May 3 01:43:56 2012 +0200

    Unix: implement uv_poll

commit d7a71761c4ee6b7d02d98f7e3a6efdffbadcb32a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:25:01 2012 +0200

    Windows: implement uv_poll

commit e1154d70ceb0e6e30b6f3cd4fa879bef17a162e2
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:15:59 2012 +0200

    Api for polling external sockets

commit e38755485e91443c07fae9b9b96b112d8e91d8f6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed May 2 19:15:52 2012 +0200

    Unix: namespace stream handle flags

commit 1ebe14e4942c7fb69fa5a96b0bfb58a797881828
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed May 2 17:41:20 2012 +0200

    linux: fix build error with old kernel headers

    O_CLOEXEC was introduced in linux 2.6.23, don't assume it's available.

    Fixes #400.

commit 19aca7a7c04a66edf22e19f1aa1405aabb9f0337
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:22:51 2012 +0200

    Windows: add uv_msafd_poll, to support overlapped socket polling

commit 9f0dc2601ed5961e739a754b9ad7d194703cc4a1
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:19:01 2012 +0200

    Windows: fetch pointer for CancelIoEx on startup

commit 7d45cca12a68a6fdf9d91979af928258abeafab0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:39:14 2012 +0200

    Windows: we're out of handle flags - arrange them more efficiently

commit 6367da25b38274c31b42097056b2995c2696caef
Merge: c7edea9 936795a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 1 16:54:27 2012 +0200

    Merge branch 'v0.6'

commit 936795a2c8aac2d05bfbf3778c54396bd52352ee
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 16 16:35:50 2012 +0200

    windows: map ERROR_WRITE_PROTECT to UV_EROFS

commit edb40b16ce0386566c7c433bbf7224aa4a1c19e3
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Sat Apr 14 17:40:01 2012 +0200

    unix: map `EROFS` to `UV_EROFS`

    Conflicts:

    	src/unix/error.c

commit 0efa3cf4d34e33a48508205a8361fc9e957bb379
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Tue May 1 21:30:32 2012 +0700

    err: handle EIO errors on win/unix

commit c7edea997ec0ac3533014cbb5f76fea958b6c3b4
Merge: d13b1e0 32f6f6e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 1 16:21:11 2012 +0200

    Merge branch 'v0.6'

commit 32f6f6e2c761fe2a9d897eab92493f11f48df8c3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue May 1 16:19:09 2012 +0200

    Windows: map ERROR_NOT_SAME_DEVICE to UV_EXDEV

commit d13b1e0803b7903373aaba8aa76406ee94f43a7d
Author: Keno Fischer <kenof@stanford.edu>
Date:   Sun Apr 29 02:29:55 2012 +0200

    Windows: fix uv_fs_ftruncate to compile with Mingw32

    Close: #382, #397
    Ref: #381

commit b386c44e5ea108775fc907ca3a66616455e16ea5
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sun Apr 29 02:18:17 2012 +0200

    Windows: always enable multicore compile

commit 0c32087973c9e5144daf04d1e74c1e3879925371
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sun Apr 29 02:08:25 2012 +0200

    Windows: disable minimal rebuild (/Gm)

    If enabled multicore compile doesn't work.

commit e2cae340a6c3e02a65a896444c47926333f89baf
Merge: 6234416 e2b6f42
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sun Apr 29 00:00:32 2012 +0200

    Merge branch 'v0.6'

    Conflicts:
    	include/uv-private/uv-unix.h
    	include/uv-private/uv-win.h
    	include/uv.h
    	src/unix/error.c
    	src/unix/linux.c
    	src/uv-common.c
    	src/win/fs.c
    	test/test-fs.c
    	test/test-spawn.c

commit 623441685d94fa366edee5fec46f291bc146237e
Author: Erik Dubbelboer <erik@dubbelboer.com>
Date:   Sat Apr 28 18:16:11 2012 +0200

    test-spawn failed to build on linux

    - added missing header file
    - converted c++ style comment to c style comment

commit e2b6f423cbb18607bb38a59ccf6e7dee61c10764
Author: Erik Dubbelboer <erik@dubbelboer.com>
Date:   Sat Apr 28 18:16:11 2012 +0200

    test-spawn failed to build on linux

    - added missing header file
    - converted c++ style comment to c style comment

commit fac3b68fff401d86ef292f3f67c5e330d3c94adb
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 25 01:26:41 2012 +0200

    linux: add IN_MOVE_SELF to inotify event mask

    Partially fixes joyent/node#3172, behavior is now consistent with inotifywait.

commit bfd6d465c760b0d0797ebe7cbee3a5d40a4b1d71
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 27 21:05:15 2012 +0200

    Test for the uv_spawn's setuid and setgid options

commit 99a995a6b8d9ae0ab17938ae63714996ddccbb30
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 27 17:41:56 2012 +0200

    uv_spawn: support setting the child process' user and group id

commit c862acc609f55366209f452864f69c7e04adff10
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 27 21:24:27 2012 +0200

    Windows: add mappings for UV_ENOENT

commit b26fdde181436c3806a314180f155d2962771125
Author: isaacs <i@izs.me>
Date:   Fri Apr 20 08:16:55 2012 -0700

    Map ENOMEM to UV_ENOMEM

commit d41cc9118df383ad8fb6007f4b175677c09e42f0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 27 21:58:44 2012 +0200

    Windows: uv_spawn2 reports the wrong error when setuid/setgid is specified

commit aea5db5da1483d1ab0a1d3e4f622df312202d027
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 27 21:24:27 2012 +0200

    Windows: add mappings for UV_ENOENT

commit 66647bf934760b2bb5e498169e462d9cc9a62fd6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 27 21:05:15 2012 +0200

    Test for setuid/setgid

commit c42ba103b7745fdce3ec7dfc6a772f935b3f8f7e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 27 17:41:56 2012 +0200

    Temporary API to support spawn with uid and gid options

commit 109dcb28b2398e098e201d402ecdaca39fd1f468
Author: Aaron Bieber <qbit@deftly.net>
Date:   Tue Apr 24 19:09:12 2012 -0600

    build: make "make test" work on OpenBSD

commit b6e3dcc799a6750a78172ee060ab0af2384a4a3a
Author: Luis Lavena <luislavena@gmail.com>
Date:   Wed Apr 25 04:06:06 2012 +0200

    Windows: actually detect mingw-w64 and not 64 bits mode

    __MINGW64__ is only defined when using mingw-w64 in 64bits mode, not when
    using the 32bits version of the compiler.

    Instead, to detect usage of mingw-w64 instead of mingw version of GCC we
    should look at __MINGW64_VERSION_MAJOR and __MINGW64_VERSION_MINOR. If one
    of these is defined means we are running on mingw-w64 compiler and headers
    and not mingw.org build.

    Read more here: http://bit.ly/detect-mingw-w64-vs-mingw

    Closes #384

commit 06ae804e03c69c246edfa5edef5b65d915e55586
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 25 01:26:41 2012 +0200

    linux: add IN_MOVE_SELF to inotify event mask

    Partially fixes joyent/node#3172, behavior is now consistent with inotifywait.

commit 42a86693a7450133d7fb22eaa9f9ad6856ae0872
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:17:43 2012 +0200

    Windows: set loop counters to zero in uv_loop_init

commit 1b6329dd3ed606f5204a234a3542a0bb18e4745c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 25 00:18:12 2012 +0200

    Style fixes

commit 5342bac4c2c98d70a21abfb07adbadb251787143
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 30 18:42:36 2012 +0200

    uv.h: make the ssize_t fallback more portable

commit 84d2f82a686497dfe1bf21f222e8f8b640771a8b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 23 11:53:53 2012 -0700

    windows: rename local var errno to errorno

    Fixes compiler warning: ‘_errno’ redeclared without dllimport attribute:
    previous dllimport ignored.

commit e6d4bca2ecb417b9654f637b59f35669ebf85fe2
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Mon Apr 23 10:52:53 2012 -0700

    remove left-over cast fixes #3160

commit 1f001fe917dc4955382a3c2b8ff9bad3530ae970
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 23 17:55:36 2012 +0200

    unix: remove kqueue cb == NULL check

    The other implementations don't check for it and it's making the counters_init
    test fail.

commit 21bee8c36f0f9086efd457ffcc22b17c5abab2c8
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 06:06:06 2012 +0200

    unix: call pipe handle connection cb on accept() error

commit cf6dc082caf61c46689341e9c515f7ae81ffbce2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:57:49 2012 +0200

    unix: handle EWOULDBLOCK in uv__read()

commit 01cc491853ab0084b4f4dacf5ab0ca0580428ad4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:56:43 2012 +0200

    unix: handle EWOULDBLOCK in uv__write()

commit df22d5935eb0fd44e2c6e3773308fcebb0ab646c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:52:38 2012 +0200

    unix: handle EWOULDBLOCK in uv__server_io()

commit 73cc3677fcdcef507154cc5860e3d0db1faa0c17
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:53:14 2012 +0200

    unix: map EWOULDBLOCK to UV_EAGAIN

commit 1fa1c5106a39532180d6c0326bea622654bd6698
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 06:06:06 2012 +0200

    unix: call pipe handle connection cb on accept() error

commit a55a33625ea60f6c840a739cfc3b568bb40674ee
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:57:49 2012 +0200

    unix: handle EWOULDBLOCK in uv__read()

commit 4fd62648830a70333ac8d467a867ad2cb0d66d6c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:56:43 2012 +0200

    unix: handle EWOULDBLOCK in uv__write()

commit a8b52351329177fc694c041822ca012cfa8683a6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:52:38 2012 +0200

    unix: handle EWOULDBLOCK in uv__server_io()

commit a29892d9d4f835f6955371f53c6ec78f0b1ca6d7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 21 05:53:14 2012 +0200

    unix: map EWOULDBLOCK to UV_EAGAIN

commit f9fcaf5ccf60486e82745ccf8321c98c966caacd
Author: isaacs <i@izs.me>
Date:   Fri Apr 20 08:16:55 2012 -0700

    Map ENOMEM to UV_ENOMEM

commit feafcdbf5f2f4da7d6f4eb695fd3763a78a6d5b9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 18 23:06:01 2012 +0200

    include: remove stray backslash

commit ab3b307df3354821dde61f19965243decf01ac40
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 18 22:29:58 2012 +0200

    unix: clean up uv__req_init()

commit 595312935326883da433d9bdaf9e3bcf2b58d27b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 18 13:17:07 2012 -0700

    build: print error message when gyp is not installed

commit d5acfd0c0545acbef5ced2fbcbc6a91c8fc7c025
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Sat Apr 14 12:29:16 2012 -0700

    64bit offsets for fs operations and cleanup uv_fs_* for uv-win

commit 132fe600c7a2189c6d278bc9b9d77d340f450169
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 18 03:13:08 2012 +0200

    const-ify stream argument to uv_is_readable() and uv_is_writable()

commit edb39b24990b50542f9c46a56605346a0a68d31e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 18 03:11:25 2012 +0200

    const-ify handle argument to uv_is_closing()

commit fb6c9eef2a9e9f22153bad9de9bd8ba1abe37efc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Apr 7 17:09:01 2012 +0200

    const-ify handle argument to uv_is_active()

commit 6c2a2aa2509a9ea48a05354e4b445b8d7e605723
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 18 02:23:14 2012 +0200

    test: don't assume unref'd timer cb runs

commit 57ee146985989a5cfdb31c9dbced3923d09e35a7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Apr 13 14:22:39 2012 +0200

    test: unlink UNIX socket before starting pipe echo server

commit 976423c643e28cddeee6b5ab9ee01802a95b878d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Apr 13 14:09:06 2012 +0200

    test: remove unused variable

commit f471f063221a063b0b09071675f48cccf6db365f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Apr 12 17:28:57 2012 +0200

    test: clean up test-stdio-over-pipes

commit 32948ab95234820a9ad7ba47ad91682f63bc4ab4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Apr 6 15:59:16 2012 +0200

    test: make variables static in test-gethostbyname.c

commit 92ec798984d23cc7f9db249f574a16ed3e7d5bb7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Mar 21 07:25:17 2012 -0700

    test: stop counter_init from failing when watch_dir exists

commit 13b8ebd7e676dd49e42b7888e0855f20739ceb4e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 18 01:15:05 2012 +0200

    windows: a closing async watcher should not call it's callback

commit 20879c1cf29a6312761d9671357eb12cb8958a80
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 18 01:14:30 2012 +0200

    test: fix a race condition in 'async' test

commit 5345ee36f2fd49ae01a1ee6fe396ffb8291b6641
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Apr 17 15:58:19 2012 +0200

    test: fix race conditions in test-async

commit d5e7786885b1ae5967ea183af2e725a954400a2c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 16 16:35:50 2012 +0200

    windows: map ERROR_WRITE_PROTECT to UV_EROFS

commit 58733d18a6bd9930a9f365ca433256cc57ba184c
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Sat Apr 14 17:40:01 2012 +0200

    unix: map `EROFS` to `UV_EROFS`

commit 76364c26de9a089ed2d19aadd99aaefce3c4186e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 13 01:59:24 2012 +0200

    Fix spawn_and_kill_with_std test

commit 62a63a30e4a98b27eb2d9ae5bb0a184fe7e15641
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Apr 13 00:46:52 2012 +0200

    Windows: make uv_dlopen() look in the DLL path to resolve recursive dependencies

commit 9984d157ffcd8ab71fee6a6b6888c08d0f277f83
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 12 17:36:42 2012 +0200

    Windows: make uv_uptime() more robust

commit f3e3e5b504d67bc408c38af04e2f1679044fa7ce
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 12 04:06:07 2012 +0200

    Windows: validate UDP socket options

    Makes test-udp-options pass on Windows.

commit a41016e9cd0bac0b744d46127471546fad378b97
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Apr 12 03:45:51 2012 +0200

    unix: run pending shutdown cb when stream is closed

commit 4f0ff3c504e70b3aa1848b1a2cfbab9911bc53e4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 12 03:33:53 2012 +0200

    Disable ipc_send_recv_pipe test on Windows

    It's not supported yet

commit 6ec330a6c3e634485bd068955b752f2059bd1bf5
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 12 03:15:51 2012 +0200

    Add UV_EIO error code

commit fa215848787ee98de09cd77aef41bffcd2f8d703
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 12 03:14:34 2012 +0200

    Whitespace

commit 4741a112ad7116486977361691738d6bb3f0c729
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Apr 12 02:13:43 2012 +0200

    test: disable fs_event_close_in_callback on kqueue-based systems

commit 2e5e1165ce7491a0de9bea512f3ca25be9461e0a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Apr 11 22:54:02 2012 +0200

    Tests: don't use %zu placeholder in printf statements

    It's not supported by msvcrt.

commit 42d3533487f181e59391e844dd03f113acfcfbea
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 11 16:24:20 2012 +0200

    unix: fix udp_options test on OS X and Solaris

    setsockopt(IP_TTL) will happily let you set a TTL > 255 on OS X, cap it.

    -1 or 0 is a valid TTL on Linux but not portable, deny it.

commit 3c415975d90c96083d9bb97aa937f24d2644b50a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 9 23:59:59 2012 +0200

    unix: don't conditionally compile kqueue fs watcher

    Always compile in the kqueue-based fs event watcher and handle it at run-time
    if the kernel doesn't actually support it.

    Works around build issues when -mmacosx-version-min is not set properly.

    Fixes joyent/node#3075.

commit d68b3d960b6d95bfc16027cecca2f3fa48bcc36f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Apr 6 01:47:16 2012 +0200

    unix: add uv_fs_read64, uv_fs_write64 and uv_fs_ftruncate64

commit 8e6f332fed29008e14b78c7bbdf9285968e6b741
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Apr 6 01:24:20 2012 +0200

    unix: fix compiler warning, #include <unistd.h>

commit e3468e9d42aab4ae0cd53f3f5e409d551d85a683
Author: saghul <saghul@gmail.com>
Date:   Thu Apr 5 08:21:09 2012 +0200

    unix: add missing function declaration

commit ea501263588c0efbaa77b24feda20075a943271a
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Apr 5 16:00:38 2012 -0700

    add 64bit offset fs functions

commit 637d976c195d690ef96344fd7415cfc29546b868
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Apr 6 00:55:04 2012 +0200

    Revert "Fix memory leak in uv_exepath() on OSX."

    This reverts commit f6c8e78db973a0f57424dba74c97fdd4d2f910f8.

    realpath() on OS X 10.5 crashes if resolved_path == NULL.

commit f6df47b474b428d3535c935739c957cc8e7c00f8
Merge: f09f7bc 3506cd1
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 5 17:26:23 2012 +0200

    Merge branch 'v0.6'

commit 3506cd1dc5e941acb216b2118cfc784b78fcc4f1
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 5 17:17:09 2012 +0200

    Windows: don't report ENOTSOCK when attempting to bind an udp handle twice

commit cda7a280395108e0c84175822718e7436c8cb4f1
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 5 16:47:49 2012 +0200

    Windows: backport pipe-connect-to-file fixes from master

    Conflicts:

        src/win/pipe.c

    commit e53ab6675ba12d97ad6d93c9913a473ba5172617
    Author: Bert Belder <bertbelder@gmail.com>
    Date:   Fri Mar 9 17:04:03 2012 +0100

        Windows: report UV_ENOTSOCK when we opened a file instead of a pipe

        Makes the pipe_connect_to_file test pass on Windows.

    commit 8cbbfbe4c6489868470a7e410f80d4729f4091bf
    Author: Igor Zinkovsky <igorzi@microsoft.com>
    Date:   Thu Mar 1 14:32:59 2012 -0800

        test: make pipe_connect_to_file succeed with ECONNREFUSED

    commit 6bbccf1fe0e000fd73e945368466cd27291483e3
    Author: Igor Zinkovsky <igorzi@microsoft.com>
    Date:   Thu Mar 1 12:11:12 2012 -0800

        windows: return UV_ENOTSOCK when doing uv_pipe_connect to a file

commit f09f7bc6a8b64585cd74d1fca712c6d0cab2f737
Author: Bulat Shakirzyanov <mallluhuct@gmail.com>
Date:   Thu Apr 5 01:39:20 2012 +0200

    Add functions to look up req and handle sizes

    Useful for FFI bindings. Closes #370.

commit 5f38ba1a8992c5aaebe89f5a11e3779dc2649fab
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Apr 5 01:28:24 2012 +0200

    Move private req and handle fields to platform headers

    And fix other problems introduced with UV_HANDLE_TYPE_MAP and UV_REQ_TYPE_MAP.

commit f4e753718489284cebdb1b61026002256a92520e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Apr 5 15:13:14 2012 +0200

    unix: move inotify init logic to loop.c

commit 68bed698fc90ca8798aac804667fd6069297c56a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:52:01 2012 -0700

    unix: move loop init logic out of core.c

commit 5a8446c3099fd10353de206825a6a42ac1ce8d63
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:30:13 2012 -0700

    unix: move handle specific close logic out of core.c

commit ed395e0619ab50d86c960e839525a0a5e8259b66
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:03:15 2012 -0700

    unix: replace handle->next_watcher

    Remove the next_watcher and replace it with a linked list. Said list is named
    endgame_handles (because the uv-win calls it that) and contains all the handles
    that are in the UV_CLOSING state.

    The goal of this commit is two-fold:

    a) remove a dependency on libev, and
    b) share more code with uv-win in the future

    A nice side effect is that it shaves a few bytes off a uv_handle_t.

commit bf9a2b346306583d1eff9b14b3a2b85f9768cb83
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 07:26:17 2012 +0200

    x-macro-ify uv_handle_type and uv_req_type

commit 5fbe0aab3303bd800f878121c8ef4aba19b0115b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:41:09 2012 +0200

    unix: move active checks out of core.c

    Move active checks out of core.c and into their respective compilation units:
    check, idle, prepare, timer.

commit 5a59e4924aa727a0cf07ed58a57075d42825b32a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:25:07 2012 +0200

    unix: move idle code from core.c to idle.c

commit dd3126575193dae16e5f9cc7e4c2b9155edc68dc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:23:18 2012 +0200

    unix: move check code from core.c to check.c

commit f1a19e6d3491938391e63daec3189b4d82bd736c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:20:27 2012 +0200

    unix: move prepare code from core.c to prepare.c

commit f7359a335cc4abdb202bb67d490479a0d5b52632
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:17:25 2012 +0200

    unix: move async code from core.c to async.c

commit fd987a26fe25030cbac53f689532743e37c75dd0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:14:15 2012 +0200

    unix: move timer code from core.c to timer.c

commit c733cb807d3152394ab40c10926fde9f016e5dd5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Apr 4 05:12:02 2012 +0200

    build: sort source files

commit effa3b65b14e9b07e293f3490f2f66a27a032d7e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Apr 3 17:37:52 2012 +0200

    Rename __unused to UV__UNUSED.

    __unused is - contrary to its name - used in glibc.

    The ANSI/ISO standards reserve all identifiers starting with two underscores so
    it's generally a good idea not to use those.

commit 8895c9e672c5bc5f9f0bb6d71ede51a5288d0d22
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Apr 3 03:13:09 2012 +0200

    unix: use uv_timer_t for c-ares' timeout timer

commit 42095c85a03af4912a7c76df006088697f1350f1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Apr 3 02:40:07 2012 +0200

    Remove UV_ARES_TASK_PRIVATE_FIELDS.

    It's only used internally, it doesn't have to be part of a public header file.

commit 396d1383fea75afe760f98bb1a6ff563048ae112
Merge: 9d3c000 9c8f6dd
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 2 23:50:27 2012 +0200

    Merge branch 'v0.6'

commit 9c8f6dd4f9367c569b63a41b2f652a9baaca177b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Apr 2 23:44:36 2012 +0200

    build: define _DARWIN_USE_64_BIT_INODE=1 on OS X

    Fixes a segmentation fault on some OS X systems due to sizeof(struct stat)
    mismatches.

commit 9d3c00046f1e8d3800bcb161dd8e929399776d55
Author: Brian White <mscdex@mscdex.net>
Date:   Fri Feb 24 12:06:44 2012 -0500

    test: ensure valid uptime value

commit 442aa1f4696d24a605790b8ad4317696758ee8de
Author: Brian White <mscdex@mscdex.net>
Date:   Fri Feb 24 11:56:15 2012 -0500

    win: use performance counter instead of GetTickCount for uptime

commit b309f2e2e6b227c515b7041b3dbd05fb7c1125f8
Author: Vladimir Dronnikov <dronnikov@gmail.com>
Date:   Sun Apr 1 21:05:06 2012 +0200

    Add uv_is_closing()

    Closes #367.

commit 685b36ba661933a675d809028714df577c808439
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Mar 31 00:11:34 2012 +0000

    linux: tidy up syscall code

commit 4632163190cef559b84e330a862b4893c342a447
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 23 22:43:57 2012 +0000

    sunos: don't use fopen()

    FILE uses an unsigned char to store the file descriptor so it cannot handle
    situations where there are more than 256 open file descriptors.

commit 1ab8f5a3c5697013c8cf00bfefa896e005f38aff
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 30 22:39:33 2012 +0200

    Conditionally define __unused.

    Fixes compiler warning '"__unused" redefined' on OS X.

    Reported by Saúl Ibarra Corretgé.

commit 436001877426d25c14c447f45949ad6aace38ac7
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Mar 30 11:49:31 2012 -0700

    add missing uv_tcp_close declaration

commit ab8c3b85c1c4f1395d6371cb6ec1d4be5a676a44
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Mar 29 18:38:33 2012 -0700

    export uv_is_readable & uv_is_writable

commit c3daa44c25d5b7a044eb276e5b33cd413ac3e1ab
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Mar 29 18:14:24 2012 -0700

    windows: explicitly disallow sending non-listening or non-connected
    TCP sockets over IPC

commit 70925c3bb993bf7ecde4c876278dec22b4745650
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Mar 8 12:02:50 2012 -0800

    windows: Enable passing of TCP connections over IPC

commit 31ff9863a16950b0fdae0d94c0e84e5f718fafad
Author: Bulat Shakirzyanov <mallluhuct@gmail.com>
Date:   Tue Mar 27 18:07:16 2012 -0700

    unix: fix TARGET_OS_IPHONE conditional

commit 6e0ca3aa8f92e398f4bbbe872d56af7ec3af6212
Merge: 40e6373 1795427
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 27 23:46:23 2012 +0200

    Merge branch 'v0.6'

    Conflicts:
    	src/unix/linux/inotify.c

commit 1795427ab0d885cae3aa9bbcecb423c4bf863749
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 27 22:53:30 2012 +0200

    Windows: never call fs event callbacks after closing the watcher

commit aff078390ff45077f12ea31d00516bf9a8e2f08e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 27 22:52:53 2012 +0200

    Test: verify that uv_close from an fs event callback works properly

commit 732cf91d6d0d6a711183985c1796a31565708bb2
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 27 22:56:34 2012 +0200

    Test: verify that no callbacks are made after closing an fs event watcher

commit 89303f365e85bff909a821e2a552e7e2e35c255a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 27 22:50:52 2012 +0200

    Fs event tests: don't fail if a previously failed test left stray files

commit 7e8fe3ece7392a36a283ba6ff4e57bc8cb617d34
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Mar 27 22:56:51 2012 +0200

    test-fs-event.c: style

commit 40e6373263fd6853c4986393eaab041715016686
Author: Aaron Bieber <qbit@deftly.net>
Date:   Tue Mar 27 08:59:43 2012 -0600

    unix: fix compiler warning

    Fix warning "for loop initial declaration used outside C99 mode" on openbsd.

commit 2b3ba91eb91143b20741b62a7164e529032bb7ae
Author: Vladimir Dronnikov <dronnikov@gmail.com>
Date:   Tue Mar 27 18:13:02 2012 +0400

    build: make `make clean` really clean

commit e729a82e7de13f048fdb515d638daadae53ad291
Author: saghul <saghul@gmail.com>
Date:   Sun Mar 25 22:17:26 2012 +0200

    build: don't link against the Carbon framework

    Unused. The Makefile doesn't link against it either.

commit 8409a6765bbda8d68cb3f2e48a1ce0a3d4814096
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Mar 21 07:07:18 2012 -0700

    unix: ignore ECONNABORTED errors from accept()

    ECONNABORTED means that the connection was torn down by the peer before the
    TCP handshake completed. Ignore it, there's nothing we can do and it simplifies
    error handling for libuv users.

commit c9c9d805dae321a7bdf0077547c2da2dbe70f2a2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Mar 21 07:07:18 2012 -0700

    unix: ignore ECONNABORTED errors from accept()

    ECONNABORTED means that the connection was torn down by the peer before the
    TCP handshake completed. Ignore it, there's nothing we can do and it simplifies
    error handling for libuv users.

commit 8ce8bfaa4083e8a975c1c9703726ff3986a8e8be
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Mar 21 06:26:10 2012 -0700

    test: fix format string warnings

commit 8e59042310e7a2b25c298b1f79d161fd5772b117
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Tue Mar 20 16:06:52 2012 -0700

    unix: map ENETUNREACH to UV_ENETUNREACH

    UV_ENETUNREACH already exists, but was not mapped properly on unix.

commit 4ff0898c5f517aae04e42a8ce6d004f67e51e90f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Mar 19 20:58:26 2012 +0100

    unix: replace uv__close() with close()

    uv__close() was deprecated a while ago. It's been an alias for close() ever
    since. Remove it.

commit ef47a627ad8c6ef92461178881246a447633f7d6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Mar 19 20:51:38 2012 +0100

    unix: move libeio specific fields to uv-unix.h

commit 49d4e1884ba5ea135f68c8b17fdf2c5d5bf0f91e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Mar 19 07:40:50 2012 -0700

    linux: use CLOCK_BOOTTIME if available

    Use CLOCK_BOOTTIME to calculate the system uptime. Fall back to CLOCK_MONOTONIC
    if CLOCK_BOOTTIME is not available (all pre-2.6.39 kernels).

    The problem with CLOCK_MONOTONIC is that it doesn't increase when the system is
    suspended, making the uptime differ from what the uptime(1) tool reports.

commit 379ca428ef5dbf2a29897ed4d34506dad0b96757
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 16 02:42:20 2012 +0100

    test: fix compiler warnings

    * remove unused variables and functions
    * replace %llu with %zu when printing size_t variables

commit 4ae316bcc93d137d2ece2bcf6a8a85fca983a41b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 16 02:38:37 2012 +0100

    Windows: fix compiler warnings

commit 681aa831fa904f5738b8e87f8e9340f2b5bb5635
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 16 02:34:55 2012 +0100

    Mark rbtree functions with __attribute__((unused)).

commit 87151c8a7becf95c8ffd228ec2bf5eccaf355026
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 16 02:28:44 2012 +0100

    Use RB_GENERATE_STATIC, not RB_GENERATE_INTERNAL.

commit 163d8de392df7bc8b2f87ccb62a3e8c1a49eef92
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 16 02:28:26 2012 +0100

    Add UV_ENOSPC and mappings to it

    Closes GH-337

commit aff94a069ca511caebcbcc9b8c50e2293b3d1d66
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 16 02:28:26 2012 +0100

    Add UV_ENOSPC and mappings to it

    Closes GH-337

commit dfda5009c24ac7bd674a26069a9008a0d4edae73
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 16 00:49:26 2012 +0100

    unix, win: store ares handles in a binary tree

    Store the uv_ares_task_t handles in a red-black tree, not a linked list.

    Fixes #72.

commit c21184c103a0cce688be440e2ad6c641793ec747
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 16 00:48:06 2012 +0100

    test: make variables in benchmark-ares static

commit 60311566021c60e356c37720332bdbdf962618fe
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 15 16:06:29 2012 +0100

    test: silence compiler warning

    main_proc is never read without having been initialized first but gcc 4.4.x
    fails to infer that.

commit 7a2bd054936fe4afeb4abc8df02844e6a048fbfa
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 15 02:12:49 2012 +0100

    Fix include guard in tree.h and ngx-queue.h

    The C99 standard reserves all identifiers (including macros) that start with an
    underscore and a capital letter.

    Fixes #260.

commit 66a959c405222da90765dbcc28c8d0d0bbe4d3cf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 15 01:01:19 2012 +0100

    linux: try inotify_init if inotify_init1 returns ENOSYS

    The kernel may be older than the kernel headers that libuv is compiled against.

commit 6dcce92d446311d740203fecfe35fbb8a7dd260a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 9 09:15:43 2012 -0800

    unix: replace C99/C++ comments, fix build

commit 1b6df97690b432d270ff3c0aae16b4cd52f18794
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 15 01:01:19 2012 +0100

    linux: try inotify_init if inotify_init1 returns ENOSYS

    The kernel may be older than the kernel headers that libuv is compiled against.

commit db413f3806356a632774b8a589546fc6788debd6
Author: okuoku <mjt@cltn.org>
Date:   Sun Mar 11 22:40:39 2012 +0900

    win: Fix MinGW32 build

commit 8c78cb40ff8273f85212f0519fcf2204892e6820
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 9 09:15:43 2012 -0800

    unix: replace C99/C++ comments, fix build

commit e1901629759ea998fa133369e5c31cb767f383d2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Mar 9 03:16:08 2012 +0100

    test: test cross-process handle send/recv

commit 71eea07a95ecdbd8f91b449cd6ba12f306309d61
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Mar 8 17:59:46 2012 +0100

    unix: add support for receiving UNIX sockets

    Until now, all received file descriptors were reported as being UV_TCP streams:
    AF_INET/AF_INET6 sockets of type SOCK_STREAM.

    This commit adds support for AF_UNIX/AF_FILE sockets (UV_NAMED_PIPE in libuv
    nomenclature).

    Support for UV_UDP handles (AF_INET/AF_INET6 sockets of type SOCK_DGRAM) still
    needs to be implemented.

commit 8ffad48818f4683ea88ce7269285e42a42422018
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 17:50:53 2012 +0100

    Make the thread_create benchmark not time out

commit 0d6aa2a2e5af7dac163243ed3d4d908abc9911d5
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 17:15:00 2012 +0100

    Windows: output newline before output from passed tests

commit 18b37d4a49addab1ec2a6cb56bb700c8b14cab40
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 17:04:26 2012 +0100

    Windows: fix compiler warnings

commit 019118c3abcf3e26c4b4e6e49dbdf4e0ec5071b0
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 17:04:03 2012 +0100

    Windows: report UV_ENOTSOCK when we opened a file instead of a pipe

    Makes the pipe_connect_to_file test pass on Windows.

commit e99fba47c8d9bcda3ad5f6b95a25de77410da6c8
Merge: 1c8cf61 5d21056
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 16:41:12 2012 +0100

    Merge remote-tracking branch 'origin/v0.6'

    Conflicts:
    	src/win/pipe.c
    	test/run-tests.c

commit 5d21056277bf95a6703dfa107d35488cd8f960b2
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:58:49 2012 +0100

    Windows: make sure that shutdown_cb is always called

    This patch changes how uv-win uses the UV_SHUTTING and UV_SHUT flags.
    UV_SHUT is now only used for tcp handles to track whether shutdown() has
    actually been called. UV_SHUTTING has the more generic meaning of
    "no longer readable". It would be good to replace it by an actual
    UV_READABLE flag in the future.

    This makes the shutdown_close_tcp and shutdown_close_pipe tests pass on
    windows.

commit 95296dfa3cd8c88b3af8a94c95b8df51a6367c37
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:52:48 2012 +0100

    Windows: make the refcount tests pass

commit 18823270aa800da0e54eb86ec08e22dfe3e7e5fb
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:42:21 2012 +0100

    Windows: fix connecting a pipe in the thread pool

    The code didn't function. Fixes the pipe_pound benchmarks.

commit 3aa6069abf0e36eb7d41eb078fadf7299b7a7918
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:37:05 2012 +0100

    Windows test runner: show process name instead of test name

    If a test failed we would previously see:

      Output from process `test_foo`: blah
      Output from process `test_foo`: (nothing)

    This commit changes it to:

      Output from process `test_foo`: blah
      Output from process `foo_helper`: (nothing)

commit 50216706c2014ad6d8ee3bd48e63e1a97790057b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:34:02 2012 +0100

    Test runner: fix compiler warnings

commit f285caf0b53de01c2a0d4591467bffb7134a81c7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:33:33 2012 +0100

    Test counters_init: fix compiler warnings

commit aafa7db1d4ba7ad7645a3008335bf30cd272277a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:33:04 2012 +0100

    Test benchmark_pound: fix compilation problem

commit abc4f56ff02a33ac318bcef4281c64b3167db1de
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:32:24 2012 +0100

    Test chown_root: make it pass on windows

commit 09a0d61e7bd4965f0a2d9219943b7eff9c3d9944
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:31:55 2012 +0100

    Test cwd_and_chdir: don't chdir to "" or "c:"

    It should not strip the trailing (back)slash from a root directory.

commit 422a898a7f77ba0180dd3fe2b32738ba413b2e86
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:29:45 2012 +0100

    Tests: verify that shutdown_cb is always called

commit fb65d74c84d88405446bcea87a9f5199728cc5b3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:26:51 2012 +0100

    Tests: verify that uv_write and uv_shutdown ref the event loop

commit ec97ba801469d797d468c06d4db7c5e0afb6d0ac
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:25:08 2012 +0100

    Windows uv_fs_stat: cap st_nlink to SHRT_MAX

commit 87752ac38bc5d6ca0cb12504ef07e2c2ab2a617d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Mar 9 04:59:21 2012 +0100

    Fold trailing whitespace

commit e53d7e3a11df84b1faf4100d96d5fb94052bff13
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Mar 8 16:45:46 2012 +0100

    Make test-tty pass with redirected stdio

commit 743cab9f9d4aa13d7e3b79a0aaf63341bd6e26e6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Mar 8 16:44:30 2012 +0100

    Test runner: avoid process_wait failure when the test process didn't start

commit f43f1a7016f86b868dbb8f3377930647f06f1f4b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Mar 8 16:43:56 2012 +0100

    Windows: avoid uv_guess_handle crash in when fd < 0

    Happens only when using a debug version of the crt.

commit 1c8cf617f9911148499f1a46ad91969d8a58a26e
Author: Frank Denis <github@pureftpd.org>
Date:   Thu Mar 1 18:22:16 2012 -0800

    windows: initialize ares handles list

    We need to initialize the ares handles linked list or else bad things can happen
    when we try to perform async lookups.

commit 2ef5798c6f0513914bf83aa910b2535d9a1d5948
Merge: d07f246 1ac71a3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Mar 8 03:22:10 2012 +0100

    Merge remote-tracking branch 'origin/v0.6'

    Conflicts:
    	src/unix/core.c

commit 1ac71a31e9ae4eb1e8c6c9af5c2a9f4b8b62ba01
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Mar 7 21:21:50 2012 +0100

    Map EBUSY and ENOTEMPTY errors

commit d07f2466d0a10ab02db588374dd97c2edd54c7fc
Author: Brandon Philips <brandon.philips@rackspace.com>
Date:   Tue Feb 28 17:27:18 2012 -0800

    test: fs: add tests for read EOF

    This fix was merged without tests:
    https://github.com/philips/libuv/tree/fix-read-on-windows-to-handle-eof

    So take tests from igorzi:
    https://github.com/igorzi/libuv/commit/46024bf33dcc7fc922378fe0d8b4f59f4c2cd605

commit 4f1782a54bbd3be5bf8d129397d11e2a7e05d3b4
Author: Frank Denis <github@pureftpd.org>
Date:   Tue Mar 6 14:10:10 2012 -0800

    cygwin: we need to include uv-common.h for uv__set_sys_error()

commit 5505f2e9063aaf9b52d47315ae4324efbb5834be
Author: Nathan Rajlich <nathan@tootallnate.net>
Date:   Mon Mar 5 08:18:06 2012 -0800

    Fix typo in uv.h

commit 5110465c42a4f0f40dc88ecb9bb7c6a3dd4753b6
Author: Luis Lavena <luislavena@gmail.com>
Date:   Fri Mar 2 16:31:13 2012 -0300

    build: add missing libs required to compile under MinGW

    GetProcessMemoryInfo is in psapi and
    GetAdaptersAddresses is in iphlpapi

commit a93dc7ef11713192d398d08f618248dfabe7fd6c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Mar 5 15:28:27 2012 +0100

    build: link against libdl on linux

commit b55801f2254b8830f4cd3e06741c9546d35284f8
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Sat Feb 25 01:32:31 2012 +0900

    win, unix: add uv_dlerror() and uv_dlerror_free()

commit 702f905f73418ddf3c8372663f97229797cbb6a9
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Mar 1 14:32:59 2012 -0800

    test: make pipe_connect_to_file succeed with ECONNREFUSED

commit 6bbccf1fe0e000fd73e945368466cd27291483e3
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Mar 1 12:11:12 2012 -0800

    windows: return UV_ENOTSOCK when doing uv_pipe_connect to a file

commit b3fe1830409fff6a55131af3156654ee4a712426
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 29 15:55:05 2012 +0100

    unix: fix fs_event refcount bug on darwin

    The event loop got unref'd twice when the handle was closed.

commit 44c9f63cb1df484fed8117c4611358eca5f67786
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 11 20:41:27 2012 +0100

    unix: don't rely on libev to track timer state

    An obscure libev bug sometimes makes it miss state changes. Keep track of the
    state ourselves.

    Fixes joyent/node#2515.

commit 0459097745637b8789dd363a5a8ebb7ba428d121
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 29 15:55:05 2012 +0100

    unix: fix fs_event refcount bug on darwin

    The event loop got unref'd twice when the handle was closed.

commit 2f886c892e7ed960f6a1ce2831af58c3c6276977
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Jan 11 20:41:27 2012 +0100

    unix: don't rely on libev to track timer state

    An obscure libev bug sometimes makes it miss state changes. Keep track of the
    state ourselves.

    Fixes joyent/node#2515.

commit ec0eff955eb5efca1e58776047fc09c06246a831
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Feb 28 15:22:44 2012 +0100

    Revert b3e0ad4, 149d32c, e99fdf0 and ea9baef.

    Detaching doesn't work yet, the setsid() call fails and leaves the child process
    attached to the parent's session.

    Revert "test: Add test case for spawning detached child processes."
    Revert "win: Implement options.detached for uv_spawn() for Windows."
    Revert "unix: Implement options.detached for uv_spawn() for unix."
    Revert "Add "detached" member to uv_process_options_t to denote whether a child
            process should spawn detached from its parent."

    This reverts commit ea9baef95ce2208dbf65cba0ddcd90be5492a648.
    This reverts commit e99fdf0df6738dc9addc432f091896d7f37f7731.
    This reverts commit 149d32cb96592fc5037c7072e1a3ab9a3fa888a6.
    This reverts commit b3e0ad4db850a76d1d2c722f93402b3b9f453c55.

commit 9a5c1bad909d2845cc0f1e32bb222a90c8ee3d53
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Mon Feb 27 12:54:45 2012 -0800

    windows: fix time conversion in stat

commit 57c5fa1af1f1af1e9815e7d780243fa553030024
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 26 00:36:26 2012 +0100

    unix: fix build on iOS

    _NSGetEnviron() doesn't exist on iOS, use plain `extern char **environ` instead.

commit ea9baef95ce2208dbf65cba0ddcd90be5492a648
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Thu Feb 23 23:16:59 2012 -0800

    test: Add test case for spawning detached child processes.

commit e99fdf0df6738dc9addc432f091896d7f37f7731
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Thu Feb 23 23:15:43 2012 -0800

    win: Implement options.detached for uv_spawn() for Windows.

commit 149d32cb96592fc5037c7072e1a3ab9a3fa888a6
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Thu Feb 23 13:07:11 2012 -0800

    unix: Implement options.detached for uv_spawn() for unix.

commit b3e0ad4db850a76d1d2c722f93402b3b9f453c55
Author: Charlie McConnell <charlie@charlieistheman.com>
Date:   Thu Feb 23 13:06:09 2012 -0800

    Add "detached" member to uv_process_options_t to denote whether a child process should spawn detached from its parent.

commit f6c8e78db973a0f57424dba74c97fdd4d2f910f8
Author: Frank Denis <github@pureftpd.org>
Date:   Thu Feb 23 14:51:58 2012 -0800

    Fix memory leak in uv_exepath() on OSX.

commit fbc2154052819d2f6d552423c5b9a5c68a8397a6
Merge: d3efefb fca18c3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Feb 24 01:30:22 2012 +0100

    Merge branch 'v0.6'

commit fca18c33ac94cd3893e803bf6101d0c9b2823e1a
Author: Brandon Philips <brandon@ifup.org>
Date:   Thu Feb 23 14:23:02 2012 -0800

    win: fs: handle EOF in read

    in luvit after upgrade libuv from 243cfc to d3efef readSync started
    failing.  It seems that the code cleanup stopped handling EOF

    Trivially reproduced with this

        local fs = require('fs')
        print(fs.readFileSync('foo.luvit'))

commit d3efefb0435e950251350744f84e9bbb8d783871
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 22 16:52:38 2012 +0100

    linux: share inotify fd across event loop

    Previously, a new inotify fd was created for each watcher, making it quite easy
    to run into the system-wide fs.inotify.max_user_instances limit (usually 128).

    Fixes #300.

commit 09c722e72b59762ca0f01377ad60ada7d16d8558
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 22 16:05:42 2012 +0100

    common: make uv__set_*_error() return -1

    So you can do `if (errno) return uv__set_sys_error(loop, errno);`.

commit 4240f0d710859e9760d02e3953fe6d1d5c6122e7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Feb 23 05:43:21 2012 -0800

    test: check uv_fs_*() return values

commit a5082e827171bb6d00bce1140cd7d59f0f17653b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Feb 23 05:42:45 2012 -0800

    test: add proper type casts

commit 8f716a9348e3cdbeaf1db40dc2adfaf17c88ae6b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Feb 23 01:11:17 2012 +0100

    .gitignore gyp build artifacts

commit c0e7044862524e9b12a7f770623e7fd9763c6309
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Mon Feb 20 21:53:43 2012 -0800

    windows: avoid IOCP short-circuit if non-ifs lsps are detected

commit e504719e17f92bd789da9098bfd65065d223cc64
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Feb 21 13:26:42 2012 +0100

    linux: fix signedness issue in uv_exepath()

    readlink() returns -1 on error. The <= 0 check failed to catch that because the
    return value was implicitly cast to size_t, which is unsigned.

commit 75ab1ba77467cab272ee8302ca4e9d1be306d2f6
Author: Frank Denis <github@pureftpd.org>
Date:   Fri Feb 17 14:13:10 2012 -0800

    linux: uclibc <0.9.32 doesn't have <ifaddrs.h>

    uclibc didn't provide ifaddrs.h before version 0.9.32 It explicitly didn't
    install it because (quoting) "the corresponding functionality is disabled". So,
    fix libuv on uclibc < 0.9.32 by returning ENOSYS for uv_interface_addresses()

commit 86ebe48660ed767dc354d59fa5213d94dd517962
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Feb 16 23:58:14 2012 +0100

    Windows: add error mappings that map to EPIPE

commit 372ed18986ff63fd5511a71ac729c2fc7b3df933
Author: Frank Denis <github@pureftpd.org>
Date:   Thu Feb 9 12:10:48 2012 -0800

    Add more fixes for Dragonfly BSD.

commit e19724912de3469b4b9d160a21f2be7f61cb28da
Author: Frank Denis <github@pureftpd.org>
Date:   Thu Feb 9 12:00:01 2012 -0800

    Fix libuv on OpenBSD. struct kproc2 doesn't exist any more.

commit 783753e57f9c201f94be3eb1b58b228c1a41dca0
Author: Frank Denis <github@pureftpd.org>
Date:   Thu Feb 9 11:59:34 2012 -0800

    Remove unused variables on NetBSD.

commit b8649fdf00d0ddab8c95df2a5af80a5c3c97fca1
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 13 22:37:21 2012 +0100

    unix: don't flush tty on switch to raw mode

    Drain, don't flush the tty when switching from cooked to raw mode. Prevents
    buffered keystrokes from getting lost. Switching back to cooked mode still
    flushes.

    Fixes joyent/node#2744.

commit 1d942e2ad48c9a4309256558bae88ac310b956dd
Merge: 4e1f2b1 bc8b990
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Feb 13 20:02:39 2012 +0100

    Merge branch 'v0.6'

commit bc8b99097a1bc45df08d60d66856fc7663b3bd03
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Feb 13 19:13:37 2012 +0100

    win: add ERROR_FILENAME_EXCED_RANGE mapping, fix fs_file_nametoolong test

commit 6c80bf34d375e939189b35f7c6f087a182077dac
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Feb 13 19:00:59 2012 +0100

    Clean up error handling in win/fs.c, add some error mappings

commit c1cea705ba91a1d38f89168bfedf078275f0e546
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 13 14:08:27 2012 +0100

    windows: map WSAETIMEDOUT to UV_ETIMEDOUT

commit 4e1f2b1f6484a186876690ca8bddb05481012aa0
Merge: c5aa86b f9be43a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 12 16:10:05 2012 +0100

    Merge remote-tracking branch 'origin/v0.6'

commit c5aa86bd39389d48101cda60e110a94565a77620
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Feb 12 15:46:17 2012 +0100

    Remove uv_import() and uv_export().

    Not needed anymore now that support for isolates has been removed from Node.

    This commit reverts the following commits:

      812e410 test: fix up stream import/export test
      e34dc13 unix: implement uv_import() and uv_export()
      d1a0e8e test: fix undefined macro error
      2ce0058 import/export streams accross loops

commit f9be43a564c55a6e28cc2de730cb8d7131d8e558
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Feb 8 12:01:33 2012 -0800

    support half-duplex pipes

commit 53eb9935cbe07efe2823249c59f79103b8b0689f
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Feb 9 12:59:41 2012 -0800

    fix windows build

commit 62206c2db0ddd944cd0c447492da9b0de9c476a6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Feb 9 22:12:12 2012 +0100

    Clarify API doc comments in uv.h

commit c800043112a873a0fab1c5df2c76a958a2b012e7
Author: Luis Lavena <luislavena@gmail.com>
Date:   Mon Feb 6 19:15:03 2012 -0300

    Add missing IPV6_HOPLIMIT definition for MinGW

    Closes GH-307

commit dbc046cb7f3705d9f9a386e22f48e7996624909a
Author: Nathan Rajlich <nathan@tootallnate.net>
Date:   Mon Feb 6 00:21:33 2012 -0800

    Add EXDEV to the errno map.

commit 4a5f3bbd51e8fa0b3abe6ecdfcbf353d1f944199
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 6 17:26:34 2012 +0100

    eio: don't use futimes() on linux

    uclibc does not provide the syscall wrapper. Translate it into a direct utimesat
    syscall if available, else fail with ENOSYS.

commit e53302fceadc69585f2e2f53d9a9ef9da78011d0
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Feb 6 16:44:57 2012 +0100

    Explicitly export libuv symbols if gcc >= 4.

    Only export symbols that are part of the libuv API, hide everything else.

    Prevents symbol clashes in applications and libraries that depend on libuv and
    speeds up link times to boot.

commit 9fa2cf2eacde4a740f8b2b3e9519bcdcf1be6047
Author: Roman Shtylman <shtylman@gmail.com>
Date:   Thu Jan 19 11:07:28 2012 -0500

    test: add multicast TTL test

commit 443445a3c61d2ce5020c9e4bc2ee9a10bc7560fc
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sun Feb 5 19:54:04 2012 +0100

    Windows: reset brightness when reverting to default text color

commit e2565c332aa5daab090cb436d5255c5e86faeec0
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Wed Jan 25 12:42:46 2012 +0100

    win: map `ERROR_CANT_RESOLVE_FILENAME` to `UV_ENAMETOOLONG`

commit 0596c59bc3e0d5083c11abd6a558e21e94de3066
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Wed Jan 25 12:39:44 2012 +0100

    test: test if `UV_ELOOP` mapping works

commit 3ff3626e52144d62b685d1ced472fee2cc9e08d9
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Wed Jan 25 12:10:33 2012 +0100

    unix: map `ELOOP` to `UV_ELOOP`

commit 2f182f445161a823800b94e434c66bedd0b8cac3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Feb 3 16:18:50 2012 +0100

    unix: map ECONNABORTED

commit 267e75dda2b6b7ecf9501764a42416122a4f0ff5
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Feb 2 16:23:57 2012 +0100

    Windows: better stat implementation

commit 495853ee2b5d25f3848264139ab5214ddfc602bb
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Feb 1 12:38:14 2012 -0800

    windows: map ERROR_ACCESS_DENIED to UV_EPERM

commit 65bbf02dc58952423ac486e76fe290aefa8da22f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Feb 1 15:24:02 2012 +0100

    build: bump _WIN32_WINNT to 0x600

    Commit b471b33 updated the Makefile, this commit updates the gyp file.

commit 6e995bd0b067621c7a0913d8eae4ea96e98352d3
Author: isaacs <i@izs.me>
Date:   Tue Jan 31 19:43:13 2012 -0800

    Update AUTHORS

commit 243cfcd078fea62662201d92d58f4923334ebc5a
Merge: 812e410 4cfda74
Author: isaacs <i@izs.me>
Date:   Tue Jan 31 18:00:59 2012 -0800

    Merge remote-tracking branch 'ry/v0.6'

commit 4cfda74de4a3901828942e9418c43a434c0accf6
Author: Brandon Philips <brandon.philips@rackspace.com>
Date:   Fri Jan 27 15:33:25 2012 -0800

    uv.h: add EPERM to errno map to fix regression

    EPERM isn't mapped in so chown returns an unknown error. This is a
    regression from 0.4.12.

    philips:node/ (master*) $ cat chown.js
    var fs = require('fs')
    fs.chown("/tmp/foobar", 100, 100, function(er){ console.log(er);})

    philips:node/ (master*) $ ls -la /tmp/foobar
    total 0
    drwxr-xr-x   2 root  wheel   68 Jan 24 17:21 .

    0.4
    ---

    philips:node/ (master*) $ /usr/local/Cellar/node/0.4.12/bin/node chown.js
    { stack: [Getter/Setter],
      arguments: undefined,
      type: undefined,
      message: 'EPERM, Operation not permitted \'/tmp/foobar\'',
      errno: 1,
      code: 'EPERM',
      path: '/tmp/foobar' }

    master
    ------

    philips:node/ (master*) $ ./node chown.js
    { [Error: UNKNOWN, unknown error '/tmp/foobar'] errno: -1, code: 'UNKNOWN', path: '/tmp/foobar' }

    AFTER
    -----

    philips:node/ (master*) $ ./node chown.js
    { [Error: EPERM, operation not permitted '/tmp/foobar'] errno: 49, code: 'EPERM', path: '/tmp/foobar' }

commit 3eb94e92f70cf8fa9657b318e11912776e77206c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jan 27 16:31:27 2012 +0100

    Implement udp multicast methods on windows

    uv_udp_set_membership is not supported for UDP-IPv6 sockets yet.

commit 62d936047729dbfc7c3846a2a12c2db1c6248368
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jan 31 15:54:17 2012 +0100

    Windows: enable SO_REUSEADDR for datagram sockets

commit 8c8e6532bf72def18a2827d0180b903bcee90331
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jan 31 15:54:34 2012 +0100

    test-multicast-join: don't attempt to bind to a multicast address

    Does not work on Windows. Bind to a normal interface first, then join the
    multicast group instead.

commit 45d7bd88c9df0facb3ce3dc4f7fdd24e54c8512c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 31 16:50:56 2012 +0100

    unix: explain SO_REUSEADDR and SO_REUSEPORT

commit cd16ba51867e5ee171737ec8fcef7067ce526cec
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 28 02:16:00 2012 +0100

    test: add UDP broadcast/multicast/ttl tests

commit 7b83b99fdc1734e5710742e7efc981949585a6ee
Author: Bert Belder <bertbelder@gmail.com>
Date:   Tue Jan 31 14:28:04 2012 +0100

    Windows: try to set up vc environment when not running from vs command prompt

commit 812e410772e6052bf8a1c216744a9a82ba70a42c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 30 20:35:16 2012 +0100

    test: fix up stream import/export test

commit e34dc134969ea2687bb42fcd9fee4570658ba2a5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 21 04:31:25 2012 +0100

    unix: implement uv_import() and uv_export()

commit abdc3efffe87f8b29f58021d034b550f848fa8ae
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 21 04:29:29 2012 +0100

    unix: add uv__dup()

commit d1a0e8e7e23bd40c1323cf1ef597171d1f6104ae
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 21 04:19:53 2012 +0100

    test: fix undefined macro error

commit 2ce0058251373bc08016acd579aaf5bb0d8494c3
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Jan 19 16:18:55 2012 -0800

    import/export streams accross loops

commit cdb44df86da9cdf57b114e03cc41b68d5a8f80cf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 21 04:01:39 2012 +0100

    unix: add UNREACHABLE() macro

    Asserts and aborts when program flow reaches a place it shouldn't.

commit 98c0498dbc00850d8d1a01c4111d143d80d96a9b
Author: isaacs <i@izs.me>
Date:   Mon Jan 30 11:28:54 2012 -0800

    unix: Remove assert in uv__pipe_accept

    This assert unnecessarily prevents people from using the pipe_wrap
    class in node to send file descriptors over sockets.

commit f9b478cfd8e52aed25cb0968a753d5aef993f657
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 28 16:51:05 2012 +0100

    test: add windows-only uv_fs_stat regression test

commit 74cff551d5d827587ddf8b90ee8c05541ce4ec59
Author: Brandon Benvie <brandon@bbenvie.com>
Date:   Sat Jan 28 03:55:21 2012 -0500

    windows: fix off-by-one error in uv_fs_stat

    uv__is_root typo caused incorrect fs.exists results in Node.

commit 332b72e589cd105e83b619c5b40889f0401c63dc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 28 01:18:01 2012 +0100

    sunos: fix uv_udp_set_ttl and uv_udp_set_multicast_loop

    It turns out that setsockopt(IP_TTL) *does* expect an int, whereas
    setsockopt(IP_MULTICAST_LOOP) needs a char.

commit 16124bb34e8afdf0c9a8e968bc3f2b4b3594134a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 28 00:11:45 2012 +0100

    sunos: fix uv_udp_set_ttl and uv_udp_multicast_ttl

    The argument to setsockopt(IP_TTL|IP_MULTICAST_TTL) should be a char, not an int
    like on other Unices.

commit 3de0411591c8fb31cbccd32632f675ebe235cd5a
Merge: 9974825 3f1bad2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 27 22:23:26 2012 +0100

    Merge remote-tracking branch 'origin/v0.6'

commit 3f1bad205051b11368191a4c085c76782c4ab4b4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 27 22:04:46 2012 +0100

    test: add missing return statement in fs_stat_root

commit 92b260c0654d4b1524271a8ae0f24922445df182
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jan 27 18:15:10 2012 +0100

    windows: fix stat("c:\\") regression

commit f9252750e739196090ad06e9b178ad84be24c70f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Jan 27 16:29:57 2012 +0100

    Fix windows build

commit 9c76d0d74218575c3898ec2e12311800c54c4adc
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 27 00:31:13 2012 +0100

    unix: turn on SO_REUSEPORT for UDP sockets

    Required on BSD-like systems for local UDP multicast. Without it, the bind()
    call fails with EADDRINUSE.

commit b88bc43543889ac53967ccdb9a6e8338e70c3e14
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 23 20:57:12 2012 +0100

    unix: implement uv_udp_set_multicast_loop()

commit e710fdb518bdb17335cd3f71f1f922c23234f591
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 23 20:41:23 2012 +0100

    unix: implement uv_udp_set_ttl()

commit 02b41f63dc1820928f925a7701d84e3426776263
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 23 20:20:29 2012 +0100

    Add missing UV_EXTERN declarations in uv.h

commit 6554954e3e00d8d308ba980ec50ad5737f119e51
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Jan 23 20:21:56 2012 +0100

    Windows: add error mapping for WSAENOBUFS

commit 3ade5f0011b145e2a2fa9713cba756b89569f6ae
Author: Brandon Benvie <brandon@bbenvie.com>
Date:   Sat Jan 21 12:04:21 2012 -0500

    Windows: Add support for interpreting axiterm-style colors.

commit 24e6c7ec86a3b4c73a4ef76924ff35ec0b02c066
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Sun Jan 22 02:01:54 2012 +0100

    unix: map `ENAMETOOLONG` to `UV_ENAMETOOLONG`

    With tests. Closes #295

commit edbabe6f83f704aa2f52ef2c33597471bcc5f0f3
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Sun Jan 22 18:00:07 2012 -0800

    windows: set error using WSAGetLastError

commit 726e36cf7c1daf8b1ecb2d46e1d5eee07b52c7a1
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Sun Jan 22 17:52:20 2012 -0800

    implement uv_udp_set_multicast_ttl and uv_udp_set_broadcast on windows

commit 497b1ecd0008bd972d20937bed6eeec4578bf458
Author: Dan VerWeire <dverweire@gmail.com>
Date:   Tue Nov 22 21:47:21 2011 -0500

    unix: add uv_udp_set_broadcast() and uv_udp_set_multicast_ttl()

commit b674187c38c70772fd2de14de3d727438eb87c8a
Author: Dan VerWeire <dverweire@gmail.com>
Date:   Tue Nov 22 21:45:50 2011 -0500

    unix: set SO_REUSEADDR before binding

commit 32b291d5bee62400b316e9ea53ec0b95fcf5a104
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 19 16:18:37 2012 +0100

    build: don't set -mmacosx-version-min

    It sets __MAC_OS_X_VERSION_MIN_REQUIRED__, which is what we use for feature
    detection.

commit 646c80bb41acf9f8cadbc487f7b360b3462e2c26
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 19 15:01:23 2012 +0100

    build: generate Makefiles on OS X

commit 98f3446c4351ab935f3ba060b1962326d97ff3a6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 19 14:48:38 2012 +0100

    unix: don't close kqueue fd in kqueue_fork()

    The file descriptor is not inherited by the child process. Trying to close it is
    not just useless, it's actively harmful - if the close() call succeeds, it will
    have closed an altogether different file descriptor.

commit bf8ccfce18bf758d75b0e4d1cbcf6b36459fe75e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Jan 17 17:47:31 2012 +0100

    unix: fix segfault in uv_guess_handle()

    Fixes #293.

commit 0e6e4abedcfe02ccf5da4c4257faa113170c20b4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 14 01:21:25 2012 +0100

    unix: fix udp recv_start refcount

    Calling uv_udp_recv_start() should not bump the event loop's reference count.

    Fixes failing test udp_ref2.

commit 6d9c9a533fdc8a5e43d0f2a77c85ef643247be3a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 13 17:45:41 2012 +0100

    Add uv_loop_refcount() function, debug tool.

commit ac218a7ed5e8e0474a18c4716fb7eb151a685b26
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Jan 14 00:11:27 2012 +0100

    test: add lots of refcount tests

commit dc3b80a50f53c7c69ebeeb685c1371bc5589807e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 13 19:15:50 2012 +0100

    test: add udp4_echo_server helper

commit a13584bec7545d62055627e9d8b58b832058f06a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Jan 13 15:59:53 2012 +0100

    unix: remove unused #define

commit 52fba1a38fcd333d7f585778ca2c66838a473ce2
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Jan 12 16:00:31 2012 +0100

    unix: fix compiler warning

commit 855764406e3a1e92370460b87062d745f59b56cc
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Jan 11 13:29:27 2012 -0800

    windows: improve uv_fs_stat performance (by about 60%)

commit 803f5a096e1ce3d1b22c59565185e5a728ec2abd
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 9 15:42:56 2012 +0100

    linux: fix build on older distros

commit 38fc6ad839734a3f76d2535b8f62d92e9cfef8c7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Jan 2 09:55:48 2012 +0100

    unix: unref fs event watcher

    Watchers were being ref-counted twice which wasn't harmful in itself but stopped
    uv_unref() from working like you'd expect it to.

commit 43e3ac579871819f7730cf60374e49b7ec81fd1f
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Dec 30 15:46:17 2011 -0800

    windows: uv_fs_rename to replace the new file if it exists
    fixes #283

commit 4d1d02fd18060017a63b1baf555e360245363b83
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Mon Dec 26 14:01:48 2011 -0800

    windows: ensure that uv_fs_event callbacks have long names

commit 39481b78963cbb272d0a3199afc4bedf4117af07
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Dec 22 17:19:22 2011 +0100

    docs: add c-ares license note

commit feb267e61184887bb0cd1da09e62762ef0bbe9a4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Dec 18 16:49:37 2011 +0100

    unix: it's legal for dlsym() to return NULL

    A symbol name can map to NULL. Check dlerror() to see if a real error happened.

commit e9235a39f85e3f3bf9b907dcf3a9240b88a77e05
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Dec 18 16:47:06 2011 +0100

    unix: the dl functions don't set errno

commit d808cf9023844a71a606b4f94bf39c3ca565aa11
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Dec 16 15:50:19 2011 +0100

    linux: detect if inotify syscalls are supported

commit 6b3075cd730ff1cb3cf16c68c7b68791c1068bff
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 17 18:00:51 2011 +0100

    linux: improve kernel feature detection

    Do not check for minimum kernel and glibc versions, just check that the kernel
    headers export the syscall number and invoke the syscall directly. Effectively
    bypasses glibc.

commit a4c8ffa3c2f6f927bff10b9e684f4b9513a97826
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Mon Dec 12 12:15:29 2011 -0800

    windows: correctly check the result of malloc

commit 4e99cd4e29d3b6fae1dd9cd701997259f9040113
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Mon Dec 12 12:15:29 2011 -0800

    windows: fix memory leak when non-zero tcp reads are used

commit ba52023ef333d41129db2f51c9e507c623022b02
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Mon Dec 12 16:09:24 2011 +0900

    Fix missing increments of loop->counters

commit 9fe9e233cfdbcc3ed93363722688b3bda1f01ef5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Dec 12 02:15:22 2011 +0100

    .gitignore core and vgcore files.

commit 12cefcaa867c57a9db38d3973d945bd7da3a3e10
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Dec 12 02:14:25 2011 +0100

    Update AUTHORS and .mailmap

commit b5762b26ff38a7caa78ef88d5836410660be23e6
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Sat Dec 10 01:18:18 2011 +0100

    doc: add Travis CI build status image

commit 5989961184bdf52f5178f74a84c4556ac0a26de3
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Fri Dec 9 22:27:00 2011 +0100

    test: add `.travis.yml` for testing on Travis CI

commit b06da4cbab5e2726fa5c02ad68e0dee203032dcd
Author: Maciej Małecki <maciej.malecki@notimplemented.org>
Date:   Sat Dec 10 00:24:08 2011 +0100

    test: make test runner return non-zero in case of failure

commit b89c31b93632dcbc03bb4a46f06e47444ce8e9c3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Dec 6 22:20:30 2011 +0100

    unix: fix warning: return 0 in function returning void

commit 0db3274f8af73b9d8a7757f7fdc699e7f7f92349
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Dec 5 16:56:28 2011 +0100

    unix: check UV_CLOSING flag in uv__write()

    uv__write() runs after the read callbacks have fired. Said callbacks may have
    closed the handle, handle that graciously.

commit 34e95d1a4cd19051464a18f8c106b43e2053ae99
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Dec 4 13:20:21 2011 +0100

    unix: make it safe to delete the default loop

    Fixes a potential free() of non-malloc'ed memory.

commit 248ca5d61283b98066828cb522adaf4c7187f570
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Dec 3 23:31:02 2011 +0100

    unix: translate ETIMEDOUT to UV_ETIMEDOUT

commit 60630dab0f336f5c611b9c76ddd37734a3a72270
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Dec 1 00:38:08 2011 -0800

    windows: enable pending pipe instances knob

commit 9c064fbbd20cff5e985d9856930769031809a368
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Dec 1 19:38:58 2011 +0100

    Win: utf-8 decoder bug when compiling with gcc

commit 2a6a4a08646ba36d436ea9bfa7af796c1cdc6230
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Dec 1 22:44:13 2011 +0100

    Fix MinGW and MinGW-w64 builds

commit f71f5a02e6c3bff5249b1c13cd94fbd21070ed9c
Author: Yuki Okumura <mjt@cltn.org>
Date:   Fri Oct 21 00:42:40 2011 +0900

    Win: lower case tlhelp32.h to support cross compilation

commit dceb3e65cafdfce9cc931c285d6e742e74ac7cc9
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Nov 30 15:31:39 2011 -0800

    uv_cwd + uv_chdir

commit ec37d05d6669039a6e756d303638de3fba7461d5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Dec 1 21:02:29 2011 +0100

    Revert "build: compile with -D__DARWIN_64_BIT_INO_T on OS X"

    This reverts commit 01fbe7bf37909736b4ba99d30c34378f561d6761.

    __DARWIN_64_BIT_INO_T is a no-op in most cases and might be actively harmful in
    some others.

commit fadfd0f5b2889fc097ea6b3bc3f008d7cd7ce048
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Dec 1 14:24:25 2011 +0100

    Update AUTHORS and .mailmap

commit c69ccfabc21a2032c40e97f08412f78bd03bbb53
Author: Bruce Mitchener <bruce.mitchener@gmail.com>
Date:   Thu Dec 1 20:15:18 2011 +0700

    Remove incorrect documentation comment.

    The callback for uv_close does not have a status parameter.

commit b684deb4f4d1e939813fc8195be219ab70e67c95
Author: Bruce Mitchener <bruce.mitchener@gmail.com>
Date:   Fri Nov 25 16:32:32 2011 +0700

    Note that uv_is_active works on timers.

commit d513d9bb4178d284be70c43eaa51d982ca86071f
Author: Bruce Mitchener <bruce.mitchener@gmail.com>
Date:   Wed Nov 30 11:26:52 2011 +0700

    Fix typos.

commit fce90652ed38ab0925131ed141972354a494933b
Author: Bert Belder <bertbelder@gmail.com>
Date:   Mon Nov 28 19:36:41 2011 +0100

    Windows: avoid the loop starvation bug. Closes GH-154

commit 01f64f66121d0c20494d3fa0119edb05e5da42f4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Nov 25 10:11:29 2011 +0100

    Win: get rid of UV_EAINONAME, use UV_ENOENT instead

commit b4698d414bcec0c674f6312e687240310b1392d4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Nov 25 10:03:27 2011 +0100

    Strip trailing whitespace

commit cfa4112950b1f897fda7bab4e7bfd487d2d06d9e
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Nov 24 12:40:52 2011 -0800

    windows: make uv_fs_stat use open + fstat to support long paths

commit 3a50f8fca0987889a7f4d4064d6605588f817520
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Nov 25 02:04:21 2011 +0100

    Win: fix uv_getaddrinfo error reporting

commit 45b976abd9591ea1eddee43f9418bb479323834d
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Nov 25 00:59:07 2011 +0100

    Win: add mapping for ERROR_ACCESS_DENIED

commit ea63f069877eb20a5847add289b4b959c70db25e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Nov 24 19:13:46 2011 +0100

    Win: ignore ECONNRESET when receiving udp packets

commit 261d792a7ae44b35a5d2dd557c5f7b276bd79afe
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Nov 24 18:00:04 2011 +0100

    Win: map STATUS_HOPLIMIT_EXCEEDED status to WSAECONNRESET error

commit 0ded5d29cd71ec1d946a606ddc25724c3ac6588e
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Nov 24 17:59:24 2011 +0100

    Win: fix improper treatment of real ntstatus codes as mapped win32 errors

commit 96c230344dd576e69abf1ec041d4d656461d8331
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 23 18:58:41 2011 +0100

    linux: fix build when compiling with -std=c89 -pedantic

commit 92c9e95721af756fb1237986459a9730652d91c7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 21 23:55:17 2011 +0100

    unix: fix stray pointer free() when HAVE_FUTIMES=0

    uv_fs_futime() failed to initialize req.path when HAVE_FUTIMES=0.
    uv_fs_req_cleanup() later on tried to free the bogus pointer.

commit 1b9d00fb4265093d1770e2870fad1d4921c5ac5c
Author: Shimon Doodkin <helpmepro1@gmail.com>
Date:   Sun Nov 20 05:32:21 2011 +0200

    cygwin: fix undefined _SC_PAGESIZE

    unistd.h was not included, when tried to build node 0.5.9 had an error of:
    _SC_PAGESIZE undefined

commit 01fbe7bf37909736b4ba99d30c34378f561d6761
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 18 14:04:21 2011 +0100

    build: compile with -D__DARWIN_64_BIT_INO_T on OS X

    Fixes a struct stat size mismatch on 64 bits machines that made Node crash with
    a EXC_BAD_ACCESS on startup.

    Solution proposed by Paddy Byers.

commit 2bd181a8d25e32136edb3262d3c631396fb4c09e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Sep 27 15:04:45 2011 +0200

    unix: properly disarm kqueue fs watcher

    Fixes "Assertion failed: (revents == EV_LIBUV_KQUEUE_HACK),
    function uv__fs_event, file ../src/unix/kqueue.c, line 58."

commit 08a55467534b1181bb90e669c87f9ff124cd09ab
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Nov 17 15:18:32 2011 -0800

    windows: return UV_FILE for non-console FILE_TYPE_CHAR

commit 2007eb813d66497c384172882b95407be97bd539
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Wed Nov 16 13:02:16 2011 -0800

    Set uv_write_t errno correctly

    Fixes #206.

commit 4ae40b6a3ffcfcfe8b800d0cad216b04cc4d4b6c
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Mon Nov 14 16:14:10 2011 -0800

    Bump version to v0.6

commit 62d15a1e62e0ed79f3d40d07dbd270f5baf82cd5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Nov 13 20:02:46 2011 +0100

    Update AUTHORS and .mailmap

commit 89ea3be6c29234dcf5f4fbc02e7a2947ea9a580b
Author: Frank Denis <github@pureftpd.org>
Date:   Sat Nov 12 15:36:31 2011 -0800

    Add support for DragonFly BSD by sharing code for FreeBSD.

commit 93faeb218988849835aa6165b661524e46a64720
Author: Frank Denis <github@pureftpd.org>
Date:   Sat Nov 12 15:58:54 2011 -0800

    Fix typo that broke libuv on NetBSD: psysconf() -> sysconf()

commit d4bfcc28c80bc8a04ed02eca4f6f75007a120f9b
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 11 18:52:34 2011 +0100

    bench: fix compiler warnings

commit e2a794e3463f07789665766110d939389b92b5a6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Nov 11 18:52:04 2011 +0100

    test: remove dead code

commit 9322dd17240d32574d0cab91432d068cd58b24de
Author: Frank Denis <github@pureftpd.org>
Date:   Thu Nov 10 13:46:19 2011 -0800

    Use (void) for a function taking no arguments - fix gcc -Wstrict-prototypes

commit 224584c53e614d894efdd0d365bdec2130ed2e48
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 10 15:32:27 2011 +0100

    sunos: check that event ports supports fs watching

commit 26806e2b1c63e8090c261fb3f48f0d36e4bb4445
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 10 16:37:03 2011 +0000

    sunos: add getaddrinfo() compatibility hack

    getaddrinfo() returns EAI_MEMORY if strlen(hostname) >= MAXHOSTNAMELEN

commit 04dfd46349d3942c73537b4c33c1130864181d2c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 10 15:26:12 2011 +0000

    unix: remove unused uv__translate_lib_error() function

commit 61ef8cc962574bf10b9b3384e2309927461fe932
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Sep 26 08:41:19 2011 +0200

    freebsd: remove unused variables

commit 488964430163c5930ad95d15c90a323855aae444
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Nov 10 11:37:08 2011 +0100

    Fix warning: comma at end of enumerator list

commit 6d5ba42436851248f769f074122db293b4bf56dc
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Wed Nov 9 18:07:07 2011 -0800

    Remove unnecessary errno

commit 808bb8ed0b621b22d600c2d72359b9a0018df4ef
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Wed Nov 9 18:06:49 2011 -0800

    Shared uv_strerror

commit fd2b04d784d6cc10ca985a5548835310622bda50
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Wed Nov 9 17:31:53 2011 -0800

    Alternative errno strategy

commit f17d4837a8c2e406daa36bce8bd787021a09cef4
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Nov 9 14:55:34 2011 -0800

    windows: turn WSAECONNABORTED from WSARecv to UV_ECONNRESET

commit 4794c12f5886e8d05658fdecdbce4b4a572340ea
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 9 13:48:30 2011 +0100

    linux: fall back to traditional syscalls if necessary

    libuv uses feature checks to determine if newer syscalls like pipe2() are
    available. This works fine until someone compiles libuv against kernel headers
    that are newer than the actual kernel our software runs on.

    Fall back to traditional (but race-y!) syscalls when the kernel reports ENOSYS
    or EINVAL.

commit 942c68b80ed85bf1c360803a446bf0cc8cd16de0
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Nov 8 19:23:30 2011 -0800

    windows: fix utf16->utf8 conversion in uv_fs_readdir

commit 196e14528ff6d5264e46eb22b9b789f10fa4a267
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Tue Nov 8 16:59:05 2011 -0800

    Map UV_ESRCH in uv_err_name

commit 2b7774ae49b73baccc43aff9c532443412fb51e3
Author: Bert Belder <bertbelder@gmail.com>
Date:   Wed Nov 9 01:48:04 2011 +0100

    Windows: return UV_ESRCH from uv_kill

commit a378110f9ecda407cd68b1061d70c7d105957e6c
Author: Tj Holowaychuk <tj@vision-media.ca>
Date:   Mon Nov 7 12:30:02 2011 -0800

    Add UV_ESRCH

    Fixes #239.

commit b7da0a69bf721343782f9e8d7ea189f9999feaa2
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Tue Nov 8 15:05:50 2011 -0800

    Add uv__new_artificial_error()

commit f1859eb841be2fe48512bc10e64556383f408b01
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Mon Nov 7 15:48:33 2011 -0800

    windows: convert WSAECONNABORTED to EOF

commit 51df5e3b00942a0b31a999e04b1b647544e7d2b6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Nov 7 09:20:54 2011 +0100

    unix: map EISDIR

commit 16d48befbaf62c3129cccf70853e43589065bf2e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Nov 6 04:08:43 2011 +0100

    win: add uv_loop_new() and uv_loop_delete() stubs

commit 7b973eb4ad0965594a350b0e69732d0acdcb89c7
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Nov 6 04:04:32 2011 +0100

    Fix uv_loop_new() and uv_default_loop() function prototypes.

commit c468e2ab8836d87a627a13709b200861c08818db
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Nov 5 03:09:12 2011 +0100

    test: fix memory buffer comparison

commit 9dc67f5e6157c875e9d717523bbdcd82f87d9ce6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Nov 5 03:07:36 2011 +0100

    test: don't use _O_RDWR, windows-ism

commit cee56c96f84aaaf629bdedc369bf34009a0dc291
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Nov 5 02:58:48 2011 +0100

    unix: unbreak linux build, broken in 1997e10

commit 1997e10b507c467b1b25d2a22263620025eafbcf
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Nov 5 01:42:08 2011 +0100

    Add flags to uv_fs_event_init

commit faca1402ef1f8398f49402909b1a98d002ee913d
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Nov 4 16:06:53 2011 -0700

    make uv_pipe_connect return void

commit 82cf0b38c000298b6502fdb091bcaa74792f8a1e
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Nov 4 15:08:53 2011 -0700

    windows: remove quotes from PATH in uv_spawn

commit fe97c4dc63552ac830a82340f1c59c2a8bdfafe1
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Nov 4 12:41:23 2011 -0700

    windows: honor O_APPEND in uv_fs_open

commit 677bb70bfb6378a68da8438c62b1061b2bea57ab
Author: saghul <saghul@gmail.com>
Date:   Wed Nov 2 16:40:43 2011 +0100

    Added missing error codes to uv_err_name

commit 9c7ed0dad0a312410596d3c2a132a875dd9350df
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Nov 3 16:30:19 2011 -0700

    One more EACCESS -> EACCES

commit 681bd290e646deec767b23f80b3c86d10ef44b5b
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Nov 3 16:17:08 2011 -0700

    UV_EACCESS -> UV_EACCES

    In order to match existing Node API. See
    https://github.com/joyent/node/pull/2001

commit 147487afe63c1719193b57674a24e12d599f2b1f
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Nov 3 16:08:58 2011 -0700

    UNIX: Error map ENOTSOCK

commit 0698e3f905b30ee464cd9d09dbacfd41ab8c3009
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Nov 3 15:46:36 2011 -0700

    Fix UNIX pipe connect error reporting, add test

commit ee8a681ace4589fc7b0069ec5e604a3a90a66a12
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Nov 3 13:59:56 2011 -0700

    windows: uv_kill and uv_process_kill to terminate the process on SIGINT

commit 1393ee7d26421b414b5d5d0d776cc990b6073c45
Author: Carter Allen <CarterA@opt-6.com>
Date:   Wed Oct 26 11:56:12 2011 -0600

    build: remove hard-coded GCC_VERSION setting (OS X/XCode)

commit 0fb3769586ac9f9f5d0a1d9e28ec67d448311e07
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Nov 2 19:09:18 2011 -0700

    windows: don't emit fs-event callback after uv_fs_event handle is closed

commit 77a2477c3f071d36981a214a1fe4b24edeee295f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Sep 25 18:09:35 2011 +0200

    unix: add EAI_NODATA #ifdef guard, freebsd doesn't have it

commit e1bee05ecdbffbe9de37830530ad2ae2f1fb41c8
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Wed Nov 2 16:46:19 2011 -0700

    UNIX: Loop on blocking streams

    Also removes a superfluous syscall during uv_tty_init for writable TTY
    streams.

commit 74b49e821b8ea63052f28cfa1155e813a1b5f07b
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Nov 2 14:05:22 2011 -0700

    uv_kill

commit 8d5c64adf5764fde0eec13b91ef48b3acfd3a55e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Nov 2 17:20:00 2011 +0100

    unix: map EAFNOSUPPORT error code

commit 7a53924aede6415898a5f4a01b5d0345cf125c9a
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Nov 1 15:23:07 2011 -0700

    windows: call SetErrorMode on startup to ask the system not to handle critical errors

commit 90b0b7d099bbda62ec41fbf345de69eadd9bbff3
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Nov 1 10:27:46 2011 -0700

    windows: increase the number of OVERLAPPED_ENTRYs passed to GetQueuedCompletionStatusEx

commit 9c6103a479b295bb22e4e109561f71f16a8e52fd
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Nov 1 01:13:13 2011 -0700

    windows: add tests for uv_tcp_simultaneous_accepts

commit 78f4b120a199eee616d61d79185a15567ea1ae83
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 26 13:29:21 2011 -0700

    windows: knob for tuning number of concurrent accept requests

commit bd82d02467c54ee152be748525deb8b8eb28b2a3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 31 04:19:19 2011 +0100

    ev: fix epoll_init file descriptor leak

    Fix the edge case where epoll_init() leaks a file descriptor when it is called
    when the process has no open file descriptors.

commit 70381cef9bcb7c306bf5204b7da9acdcf14ec74c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sun Oct 30 02:55:00 2011 +0100

    unix: add getaddrinfo compatibility hack

    Revisit in the future. This is not a good hack.

commit 84bc18684e40475d724c3163b4a2b116a62a2aa6
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 29 05:32:22 2011 +0200

    linux: omit superfluous fcntl(F_GETFD) syscall

commit c0792e54052bd3222c3b00e45f7e81c87187504a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Oct 29 02:00:04 2011 +0200

    Windows: the correct way to make TCP_KEEPALIVE work on MinGW

commit 99b512e890bd424eaac8139a567733f03a7975a0
Author: Luis Lavena <luislavena@gmail.com>
Date:   Fri Oct 28 20:09:03 2011 -0300

    Windows: use SO_KEEPALIVE instead of TCP_KEEPALIVE

    MinGW doesn't understand the latter. Closes GH-228.

commit ed2b5e60cbfa6ca824408dc792d9282e5b8e9bfd
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 29 01:28:17 2011 +0200

    linux: use ioctl(FIONBIO) to set O_NONBLOCK, saves a syscall

commit e4d6509211cbc4dffa26aab0e558ac9ebe8fa04a
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 29 01:12:15 2011 +0200

    build: compile in dl.c on unix

commit 90e15f1110f23d27b5f879562d33084290ba3ca8
Author: Bert Belder <bertbelder@gmail.com>
Date:   Sat Oct 29 00:45:47 2011 +0200

    Implement uv_dlopen and friends

commit c985ea4b10a54335bc4d8c44a0f6c710f62d46d4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 28 11:48:16 2011 +0200

    Add uv__new_sys_error

commit e9472fe02b484d7d68bb733849d4737c4053ec5c
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 28 11:43:48 2011 +0200

    Prepare libuv for shared library build

commit 04b3c65ec8e599a9f77642c83541ea9771f639d4
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 28 15:33:04 2011 +0200

    Add common.gypi to gyp-generated projects

commit f2c6b4106ddfc67f98da695ecf166df5e60e0f37
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 28 01:31:55 2011 +0200

    unix: have uv_strerror() handle getaddrinfo() errors

commit 314d0ee4f62badec69f6ec89722487e38a5a3cf0
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 26 13:32:15 2011 -0700

    windows: don't fail uv_listen with UV_EALREADY if already listening.  fixes #227.

commit 339a1ad252a0f2615e578e2971e0ba4b798b9eea
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 26 17:11:57 2011 +0200

    test: fix warning: implicit declaration of function ‘memcmp’

commit 3e4af533ae4c11811d478ad52095763e318948d9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 26 03:41:49 2011 +0000

    sunos: implement file watcher API

commit 3ecb319128717e23b1292c53f44e39676609a02d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 25 23:50:10 2011 +0000

    build: sunos expects -pthreads, not -pthread

commit cb6cd92305e1326883afacc40dff6b4d72009310
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 25 22:35:46 2011 +0000

    build: fix gcc 3.x build

    Detect gcc version, -fvisibility is a gcc 4.x switch.

commit d15b88a9355fbd43c85cf15f97912066c90bbfeb
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Oct 25 15:53:19 2011 -0700

    windows: implement uv_tcp_nodelay and uv_tcp_keepalive

commit 0cb2213db0e617377f78a11768c17956530dc19b
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Oct 25 13:07:29 2011 -0700

    windows: when sharing a server socket, only call listen in the parent process

commit b5d69f9a3e0e3699f88a4fbe60af7d8a3801009c
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Mon Oct 24 14:05:33 2011 -0700

    Map EHOSTUNREACH on Unix

commit 179f475b2ad64729feb0422f06ce133cb364482a
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 21 18:42:19 2011 -0700

    win: fix fs__readdir buffer overflow bug

    Thanks Runner Mei for pointing this out. Closes GH-224.

commit 66f39250b71d26ba3a97bce3cb19bbedd956a314
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 21 18:38:39 2011 -0700

    Fix MinGW build

commit 45882e0bdc778aef0cfa431b940c293a01ec731f
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 21 18:38:20 2011 -0700

    win: flush output buffer before doing a console reset

commit 2dd02829c1a97814144cb87ddcef45da3f0cebf3
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 21 18:27:21 2011 -0700

    win: fix function prototype

    Mea culpa.

commit ec825ffc62014d40f2d0b1163725af2587277c1e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 21 15:37:47 2011 -0700

    unix: add TCP keepalive and no-delay control knobs

commit 9da53df457f85a803e1a6645cab40c77581566e5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 21 14:13:28 2011 -0700

    unix: fix uv_freeaddrinfo() segfault on sunos

    The system freeaddrinfo() on SunOS does not handle NULL values graciously.

commit 773830604de102c7494b6567d2f7eac8decdb964
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Oct 21 13:25:46 2011 -0700

    windows: fixes queued_bytes for ipc pipes

commit d3967992107551988ef309465974eee67fb92c10
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 21 10:00:41 2011 -0700

    Change return type of uv_get_*_memory() functions

    ... from double to uint64_t. Limit use of floating point in public API as much
    as possible.

commit 9757a43a57e21cf17b3139131e35fcc2043562f9
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 21 09:54:11 2011 -0700

    unix: remove unused variable

commit fb7138614daa42f737799833d45eb4ea3268c8a7
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Oct 20 19:23:57 2011 -0700

    Improve ansi escape code support on windows

commit 2c7e8bb137b96e3e05610e98bfe63bb25df9c7e8
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Oct 20 17:11:08 2011 -0700

    Map EAI_NONAME to ENOENT

commit 28234d73364756a25d78621eba95902f30413417
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Oct 20 15:10:06 2011 -0700

    windows: ref pipe writes to keep the event loop alive

commit 54982a23efc2d47333d60223f59e773dec365327
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 19 00:48:38 2011 -0700

    windows: stdio over non-overlapped pipes

commit cb474b24c1bd77fb2deec4be1830adeb17d435f6
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Oct 20 14:53:26 2011 -0700

    Ignore rogue DNS servers reported by windows

commit c0e5db2d49d43488ad5169a442eed357c616088d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 20 14:38:29 2011 -0700

    linux: fix events after close bug

commit 51e9dbc2bbdba0de482343c0fe116211cddd5ead
Author: Bert Belder <bertbelder@gmail.com>
Date:   Thu Oct 20 10:11:04 2011 -0700

    Work around windows udp bug, allow zero reads

commit e8a418e920dc98fbe34808d8ea9150b66f61ad3a
Author: Frank Denis <github@pureftpd.org>
Date:   Mon Oct 17 16:55:45 2011 -0700

    Fix pasto: uv_udp_recv_start() receives a UDP datagram, it doesn't send data.

commit 2069a24e8c48ab661fc5f6a1e73bfc0f910b9513
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 15 02:34:30 2011 +0200

    unix: fix file descriptor leak

commit cdb3601746b615d0c8a968c99032547ebfe1483f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 15 02:20:42 2011 +0200

    Update AUTHORS and .mailmap

commit 456f831389f30f5fcc35f1ce07d63a34e30f039a
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Oct 14 15:37:28 2011 -0700

    windows: ensure that the ipc frame header is properly initialized

commit 1e0d25a39ac4e4df0ffd4d3a50d64118a9b15a26
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Sat Oct 15 00:04:30 2011 +0200

    build: fix gyp script, broken in 4ab1990

commit 4ab199006458406f60cf6b76798c61e96bb229df
Author: Frank DENIS <github@pureftpd.org>
Date:   Thu Oct 13 05:38:13 2011 +0200

    unix: add support for OpenBSD

commit fd9dbb1279bd09886bbb8c47df05255003eeffae
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 12 21:46:06 2011 -0700

    fix mingw build

commit 72b5976e8380f0baebf749c85ee102576c6a81de
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 12 13:23:09 2011 -0700

    windows: support utf8 in uv_fs functions
    fixes #201

commit c903bc3f320db88754a2b46da775f9bb2e65710b
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Wed Oct 12 12:25:05 2011 -0700

    unix: fix a few compiler warnings

commit 81303a72bedc92a5dbfdc4a79df515faacdbf81f
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 12 11:37:22 2011 -0700

    fix fs_readdir_file on windows

commit 2216d38c295ab728194d4933d506421495b73356
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 12 10:36:14 2011 -0700

    windows: enable uv_fs_open to open directories

commit 25a177a2e5760b41c3cc75ad354ef41fafbc26a5
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 12 16:42:55 2011 +0200

    test: assert that readdir on file raises UV_ENOTDIR

commit 197f591ebc82bc5f9b917f38bdaec410459ca298
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 12 16:39:17 2011 +0200

    common: add UV_ENOTDIR error code

commit 721ad8c74f5d1d7d83fd5bfcabd322812b48eb8c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 12 02:05:52 2011 +0000

    sunos: implement uv_fs_futime()

commit 014394df3a2c9b06058d31c0654df11b4099d6c4
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 12 01:41:17 2011 +0000

    build: compile all targets with large file support

commit 72fb469a43b4582f85357a7dd00f9821dc45e7be
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Oct 11 18:20:15 2011 -0700

    windows: check for fd==-1 in uv_fs functions

commit e0a4e726407a2baee6aecbfa6157e4a2f8c6fc4c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Wed Oct 12 00:27:30 2011 +0000

    sunos: look up free memory with sysconf(_SC_AVPHYS_PAGES)

commit 7b01ad16850a28ea6faa10686bc31b6c4f039a6c
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 11 23:42:51 2011 +0000

    test: don't assert that total_mem > free_mem

    Assertion fails when running in a resource container, like a Solaris zone.
    The total reported is the container's hard limit, the free memory that of
    the whole system.

commit 04daabd58fd23b27012a82435f82f1b5b6e1ea18
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 11 23:17:58 2011 +0200

    win: unbreak build, use UV_ENOSYS

commit 61343ecfbdbba75820ff29504385ad6968eb72cd
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 11 23:15:41 2011 +0200

    common: add UV_ENOSYS error code

commit a3d495c0bccfb6764d2f4cc12677fca8db8e764d
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 10 23:34:00 2011 +0200

    win: make uv_process_kill(proc, 0) report process status

commit acc98ca92268352e75d7f077f0a4556127181748
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 11 21:00:56 2011 +0200

    test: uv_process_kill(proc, 0) should not kill the process

commit a3d1f6fd6f463843dda11d4be61ed0c37b64f1cb
Author: Roman Shtylman <shtylman@gmail.com>
Date:   Thu Sep 29 19:29:15 2011 -0400

    add uv_udp_set_membership for unix multicast support

    - test-udp-multicast-join tests that multicast packets can be received
    - stub src/win/udp.c until support added

commit 40b64a81cbf13fd7c998d979ce6b32796fb723d9
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Oct 11 11:47:05 2011 -0700

    windows: don't alloc readdir buffer for empty dirs

commit 4ac13090ca4be30c1df8e6e0e79c30b33a391097
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Tue Oct 11 10:45:02 2011 -0700

    fix mingw build

commit 6936d60cdec29a2433a9d830b58e8bc65907ad70
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 11 18:27:10 2011 +0200

    build: don't set CC and AR

    Allows user to override compiler and archiver through the CC and AR environment
    variables. Note that this already worked as expected with `make CC=clang`.

commit 47d22acfb2eb4f046a104cc43cc6bf93a4223858
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Tue Oct 11 14:41:26 2011 +0200

    unix: stub kqueue support functions on old platforms

commit f7f518aa7e75bee4880113bb226b87a05f4838ab
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 10 23:59:54 2011 +0000

    sunos: fix uv_spawn()

    SunOS does not set POLLHUP when the read end of a pipe is closed.

commit 732169565ece97799b1fc6848ac5355f3ae2975e
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 10 20:47:07 2011 +0000

    sunos: link against libkstat

commit 5656e3c8bdf565e4ca566427671fa0c1b9c29fa4
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Mon Oct 10 13:17:57 2011 -0700

    Prepare for writable TTY to be blocking

commit 41e8574920743832d6d55f97a9fca6088434a294
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 10 16:27:55 2011 +0200

    unix: don't alloc memory for readdir on empty dir

commit 04b356ab3799c39dc2aa321a3bdeb14080098ccf
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Mon Oct 10 16:07:46 2011 +0200

    test: fix compiler warnings

commit e4a27d1c36faae5b6d72c9c570eb55cd714c5a64
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Sun Oct 9 18:33:32 2011 -0700

    Update features

commit 9f6024a6fa9d254527b4b59af724257df870288b
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Fri Oct 7 15:04:07 2011 -0700

    windows: fixes crash in pipe.c

commit 81c09cb2e38e80fbe421f54f9e2cf0ea504e4b70
Author: Bert Belder <bertbelder@gmail.com>
Date:   Fri Oct 7 14:38:14 2011 +0200

    win: add error mappings for ECONNRESET

commit 5ac040069eed526df7b280e3cdf39d06ca42444a
Author: Fedor Indutny <fedor.indutny@gmail.com>
Date:   Fri Oct 7 14:59:00 2011 +0700

    better docs

commit 1c72aebd7826398d6411b662b0e74541c25b1a8d
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Fri Oct 7 00:45:58 2011 -0700

    unix: IPC stdio stream should be duplex

commit 012fc0799f0c8080faf0b0fc309205317f4a443f
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Oct 6 18:55:55 2011 -0700

    windows: fixes #193.  Ensures that uv_fs_event deals with short and long names

commit 5816f2d21c899d2ed791c50627aad0b588af9e00
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Fri Oct 7 02:08:15 2011 +0200

    unix: avoid unnecessary read() syscall

commit 0364809fb5a321db1dd09aa8deb29fef2ae8bbe5
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Oct 6 16:18:15 2011 -0700

    fix fs_utime & fs_futime tests on windows

commit f60cf1d2334e77e2b42802d208482d031ef998e7
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Oct 6 14:53:52 2011 -0700

    Dont build tests on 'make all'

commit e3bcecdc425167a2c3b32ec7afced5bf1cabb384
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Oct 6 14:52:37 2011 -0700

    unix: clean up messy code

commit 60c639fd577c02ddbd503222d6c449ed32edf9ac
Merge: 11944b9 34f719d
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Oct 6 10:18:13 2011 -0700

    Merge branch 'ipc2'

commit 34f719d7a529c7e4a8c4d65a3e8fd0c0477c2309
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Oct 6 00:58:25 2011 -0700

    windows ipc fixes

commit 90e88aabf6cac0f79538a1bf45c0a081b950522e
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Wed Oct 5 02:35:38 2011 -0700

    remove stdio.c

commit 81c4043c83f07dc8c365c94d8330c96c5e313d22
Author: Igor Zinkovsky <igorzi@microsoft.com>
Date:   Thu Sep 29 17:58:58 2011 -0700

    ipc on windows

commit 61fab8d1ba749e02e41350c1e1acb7af1c5e6a1c
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Tue Oct 4 14:44:16 2011 -0700

    unix: return UV_UNKNOWN_HANDLE when read2 doesn't recv one

    unix passes ipc test on this comment.

commit c920db9fd15bba9a2b652bc8b0b8364090c915b3
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Mon Oct 3 14:49:21 2011 -0700

    unix: handle passing kind of working

commit bb6b629e6a1d46ed77196cfc9802bdea7d524119
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Fri Sep 30 09:11:51 2011 -0700

    make test-ipc accept the pending tcp server

commit 45306f2e7fef7bd37606e3059472a88b85100c4b
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Sep 29 11:49:56 2011 -0700

    unix: implement uv_write2

commit e5e6efe317f39606c4d190ea32269ea125eb93a6
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Sep 29 10:43:11 2011 -0700

    Add uv_write2 and uv_read2_start to header file

commit dc0f17d3e3e02e3ca80a7fe127aa5d7c4c7374dc
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Thu Sep 29 10:37:59 2011 -0700

    Add server to ipc_helper

commit 6921d2fc075df8933748e7543402b0ae6d686fa3
Author: Ryan Dahl <ry@tinyclouds.org>
Date:   Mon Sep 26 09:42:41 2011 -0700

    Add argument to uv_pipe_init for IPC, unix impl

commit 11944b948fb8c2bb0c8da27a1db57a6f68fdbcda
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 6 17:01:28 2011 +0200

    Update AUTHORS and .mailmap

commit d1016de59735a41f778b7a17c8d522d57677becd
Author: okuoku <mjt@cltn.org>
Date:   Thu Oct 6 21:52:04 2011 +0900

    FreeBSD: Fix FreeBSD build.

commit 27262134cd7249b7466438a9a84d0e856596262f
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 6 03:31:26 2011 +0200

    bench: add batched TCP writes benchmark

    Times how long it takes to queue and write out 1,000,000 short strings.

commit c7870465aa86a3d0942c1d42c5ce930c696e1830
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date:   Thu Oct 6 01:00:56 2011 +0200

    error reporting: return sensible messages for synthetic errors

commit 0303197a5790de4a75451a0321af7127feeb10e8
Author: Erick Tryzelaar <erick.tryzelaar@gm