Skip to content
  • KJ Tsanaktsidis's avatar
    e08d5239
    Ensure fiber scheduler is woken up when close interrupts read · e08d5239
    KJ Tsanaktsidis authored
    If one thread is reading and another closes that socket, the close
    blocks waiting for the read to abort cleanly. This ensures that Ruby is
    totally done with the file descriptor _BEFORE_ we tell the OS to close
    and potentially re-use it.
    
    When the read is correctly terminated, the close should be unblocked.
    That currently works if closing is happening on a thread, but if it's
    happening on a fiber with a fiber scheduler, it does NOT work.
    
    This patch ensures that if the close happened in a fiber scheduled
    thread, that the scheduler is notified that the fiber is unblocked.
    
    [Bug #20723]
    e08d5239
    Ensure fiber scheduler is woken up when close interrupts read
    KJ Tsanaktsidis authored
    If one thread is reading and another closes that socket, the close
    blocks waiting for the read to abort cleanly. This ensures that Ruby is
    totally done with the file descriptor _BEFORE_ we tell the OS to close
    and potentially re-use it.
    
    When the read is correctly terminated, the close should be unblocked.
    That currently works if closing is happening on a thread, but if it's
    happening on a fiber with a fiber scheduler, it does NOT work.
    
    This patch ensures that if the close happened in a fiber scheduled
    thread, that the scheduler is notified that the fiber is unblocked.
    
    [Bug #20723]
Loading