Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jul 9, 2012
  1. @bnoordhuis
  2. @bnoordhuis

    unix: speed up uv_async_send() some more still

    bnoordhuis authored
    __sync_val_compare_and_swap() emits a CMPXCHG instruction on i386 and x86_64.
    Use XCHG instead, it's about four times faster.
Commits on Jul 2, 2012
  1. @bnoordhuis

    unix: speed up uv_async_send() some more

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

    bench: improve async_pummel benchmark

    bnoordhuis authored
    Benchmark the performance of uv_async_send() when the handle is contended for
    by 1, 2, 4 or 8 threads.
Commits on Jun 29, 2012
  1. @piscisaureus

    Merge branch 'v0.8'

    piscisaureus authored
  2. @piscisaureus

    test: fix test-gethostbyname to not use a DNS server on localhost

    piscisaureus authored
    Because, you know, not everybody has one.
  3. @piscisaureus

    Revert "test: improve clean-up in test-fs-event"

    piscisaureus authored
    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 7573f4a.
  4. @saghul @piscisaureus

    c-ares: ignore rogue DNS servers reported by windows

    saghul authored piscisaureus committed
  5. @bnoordhuis @piscisaureus

    c-ares: libuv-ify c-ares

    bnoordhuis authored piscisaureus committed
  6. @saghul @piscisaureus

    c-ares: upgrade to 1.9.0

    saghul authored piscisaureus committed
  7. @piscisaureus

    test: fix test-gethostbyname to not use a DNS server on localhost

    piscisaureus authored
    Because, you know, not everybody has one.
  8. @bnoordhuis

    unix: speed up uv_async_send()

    bnoordhuis authored
    Don't make a syscall when the handle is already pending.
    
    Speeds up the async_pummel benchmark by about 13%.
  9. @bnoordhuis
  10. @bnoordhuis

    test: fix unused function warning

    bnoordhuis authored
    exit_cb_unexpected() is only used on Windows.
  11. @bnoordhuis
  12. @bnoordhuis
  13. @bnoordhuis
  14. @bnoordhuis

    Merge branch 'v0.8'

    bnoordhuis authored
  15. @bnoordhuis
  16. @bnoordhuis

    linux: don't use accept4() syscall after ENOSYS

    bnoordhuis authored
    Repeatedly calling the syscall when it's not supported has a small but
    measurable performance impact.
    
    Besides, it's a silly thing to do.
  17. @bnoordhuis

    linux: fix accept4() ENOSYS detection on i386

    bnoordhuis authored
    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.
Commits on Jun 28, 2012
  1. @piscisaureus

    windows: don't inhibit reparse behavior when non-symlink is encountered

    piscisaureus authored
    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.
Commits on Jun 27, 2012
  1. @bnoordhuis

    unix: assume that dlopen() clobbers dlerror()

    bnoordhuis authored
    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.
Commits on Jun 26, 2012
  1. @bnoordhuis

    unix: don't create connect req when connect() fails

    bnoordhuis authored
    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.
  2. @roman-neuhauser @bnoordhuis

    unix: map ENODEV to UV_ENODEV

    roman-neuhauser authored bnoordhuis committed
    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
  3. @shigeki @bnoordhuis

    uv.h: add members to any-union of handle and req

    shigeki authored bnoordhuis committed
Commits on Jun 25, 2012
  1. @AvianFlu @bnoordhuis

    test: prevent running the tests as root

    AvianFlu authored bnoordhuis committed
  2. @AvianFlu @bnoordhuis

    test: improve clean-up in test-fs-event

    AvianFlu authored bnoordhuis committed
    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.
  3. @bnoordhuis

    Merge branch 'v0.8'

    bnoordhuis authored
  4. @bnoordhuis
  5. @saghul @piscisaureus

    win: map ERROR_PRIVILEGE_NOT_HELD to UV_EPERM

    saghul authored piscisaureus committed
  6. @bnoordhuis

    Update AUTHORS

    bnoordhuis authored
  7. @upsuper @bnoordhuis

    darwin: get cpu model correctly on mac

    upsuper authored bnoordhuis committed
Commits on Jun 24, 2012
  1. @bnoordhuis

    Update uv_getaddrinfo_cb prototype.

    bnoordhuis authored
    Make it clear that the first argument is a req, not a handle.
  2. @bnoordhuis

    linux: set close-on-exec flag with ioctl(FIOCLEX)

    bnoordhuis authored
    ioctl(FIOCLEX) is 25% faster than fcntl(F_SETFD) on a stock 2.6.32 kernel.
Something went wrong with that request. Please try again.