Skip to content
This repository has been archived by the owner on May 4, 2018. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: joyent/libuv
base: 61ecb3415d0d
Choose a base ref
...
head repository: joyent/libuv
compare: b7f38b1e5384
Choose a head ref
  • 1 commit
  • 3 files changed
  • 1 contributor

Commits on Oct 24, 2012

  1. Revert "unix: avoid iterating over all async handles"

    This reverts commit 209abba.
    
    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.
    bnoordhuis committed Oct 24, 2012
    Copy the full SHA
    b7f38b1 View commit details
    Browse the repository at this point in the history