Skip to content
Commits on Mar 5, 2013
  1. @bnoordhuis

    unix: handle POLLERR and POLLHUP in uv__stream_io

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

    windows: link with advapi32 and shell32 libraries

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

    linux: make uv_cpu_info() handle absent procfs

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

    darwin: fix spurious uv_write2() segfault

    bnoordhuis committed
    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.
Commits on Feb 28, 2013
  1. @schlamar @bnoordhuis
Commits on Feb 27, 2013
  1. @tjfontaine @bnoordhuis
  2. @bnoordhuis

    test: fix tap output check

    bnoordhuis committed
    Only report as an error when status != 0.
    Stops the platform_output test from being reported as having failed
    on Jenkins.
  3. @bnoordhuis
  4. @bnoordhuis
  5. @bnoordhuis

    darwin: fix read from uninitialized struct kevent

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

    test: remove 'is root?' check

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

    linux, darwin: don't touch environ in uv_setup_args

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

    windows: initialize stop_flag explicitly

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

    windows: fix uv_stop in ONCE and NOWAIT modes

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

    unix: make uv_stop work when embedded

    bnoordhuis committed
    * 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.
  4. @saghul @bnoordhuis
  5. @saghul @bnoordhuis
  6. @schlamar @bnoordhuis
  7. @bnoordhuis
  8. @bnoordhuis

    unix: set errno in sendfile emulation

    bnoordhuis committed
    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.
  9. @bnoordhuis

    linux: use eventfds for async handles

    bnoordhuis committed
    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)
      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%.
  10. @bnoordhuis

    unix: abstract away async pipe infrastructure

    bnoordhuis committed
    This commit lays the groundwork for the switch to eventfds on Linux.
Commits on Feb 24, 2013
  1. @bnoordhuis

    darwin: implement uv_set_process_title, part 2

    bnoordhuis committed
    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.
  2. @bnoordhuis

    darwin: implement uv_set_process_title, part 1

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

    build: support 64 bits darwin builds

    bnoordhuis committed
    Before this commit, gyp built 32 bits versions of libuv exclusively.
    Enable with:
      $ ./gyp_uv -Dtarget_arch=x64
Commits on Feb 22, 2013
  1. @tjfontaine @bnoordhuis

    test: add tap output

    tjfontaine committed with bnoordhuis
    Given UV_TAP_OUTPUT being set, test result output should use TAP formatting
  2. @bnoordhuis

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

    bnoordhuis committed
    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
    This commit is a micro-optimization, it does not change the event
    loop's observable behavior in any way.
  3. @bnoordhuis

    unix: auto-unref spawn handle on process exit

    bnoordhuis committed
    Consistent, for better or worse, with uv-win.
    Fixes #718.
Commits on Feb 21, 2013
  1. @bnoordhuis

    unix: handle EINPROGRESS for unix sockets

    bnoordhuis committed
    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 nodejs/node-v0.x-archive#4785.
  2. @bnoordhuis

    unix: use uv__set_artificial_error in uv_write2

    bnoordhuis committed
    * Use uv__set_artificial_error(), slightly more efficient than
    * Return UV_EINVAL instead of UV_EOPNOTSUPP.
    * Fix up style.
  3. @saghul @bnoordhuis
Something went wrong with that request. Please try again.