Commits on Mar 9, 2013
  1. @piscisaureus

    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 nodejs/node-v0.x-archive#4959.
    piscisaureus committed Mar 9, 2013
  2. @piscisaureus
Commits on Mar 8, 2013
  1. @isaacs

    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 nodejs/node-v0.x-archive#4951
    isaacs committed Mar 7, 2013
Commits on Mar 7, 2013
  1. @bnoordhuis
Commits on Mar 6, 2013
  1. @bnoordhuis
  2. @bnoordhuis
  3. @bnoordhuis

    unix: add uv_buf_t static asserts to core.c

    Verify that our uv_buf_t type is ABI-compatible with struct iovec.
    bnoordhuis committed Mar 7, 2013
  4. @bnoordhuis
  5. @bnoordhuis

    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.
    bnoordhuis committed Mar 6, 2013
  6. @bnoordhuis

    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.
    bnoordhuis committed Mar 6, 2013
Commits on Mar 5, 2013
  1. @piscisaureus
  2. @piscisaureus
  3. @piscisaureus

    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.
    piscisaureus committed Mar 5, 2013
  4. @bnoordhuis

    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 nodejs/node-v0.x-archive#4923.
    bnoordhuis committed Mar 5, 2013
Commits on Mar 4, 2013
  1. @piscisaureus

    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
    piscisaureus committed Mar 4, 2013
Commits on Mar 2, 2013
  1. @bnoordhuis

    linux: make uv_cpu_info() handle absent procfs

    Return an error when reading from /proc files fails because the procfs
    isn't mounted.
    bnoordhuis committed Mar 2, 2013
Commits on Mar 1, 2013
  1. @bnoordhuis

    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 nodejs/node-v0.x-archive#4870.
    bnoordhuis committed Mar 1, 2013
Commits on Feb 28, 2013
  1. @schlamar @bnoordhuis
Commits on Feb 27, 2013
  1. @tjfontaine @bnoordhuis
  2. @bnoordhuis

    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.
    bnoordhuis committed Feb 27, 2013
  3. @bnoordhuis
  4. @bnoordhuis
  5. @bnoordhuis

    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.
    bnoordhuis committed Feb 27, 2013
  6. @bnoordhuis
  7. @bnoordhuis

    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.
    bnoordhuis committed Feb 24, 2013
  8. @schlamar @bnoordhuis
Commits on Feb 26, 2013
  1. @bnoordhuis

    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 nodejs/node-v0.x-archive#4847.
    bnoordhuis committed Feb 26, 2013
  2. @txdv @bnoordhuis
  3. @saghul @bnoordhuis

    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.
    saghul committed with bnoordhuis Feb 26, 2013
Commits on Feb 25, 2013
  1. @tjfontaine @bnoordhuis
  2. @saghul @bnoordhuis

    windows: fix uv_stop in ONCE and NOWAIT modes

    Same as the fix in 492efb9 but this time for uv-win.
    saghul committed with bnoordhuis Feb 25, 2013
  3. @bnoordhuis

    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.
    bnoordhuis committed Feb 25, 2013
  4. @saghul @bnoordhuis
  5. @saghul @bnoordhuis
  6. @schlamar @bnoordhuis