Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Fix race condition in stopping FSEvent runner #40

Merged
merged 1 commit into from Dec 28, 2012
Commits on Dec 28, 2012
  1. Handle potential race condition when stopping

    dbussink committed Dec 28, 2012
    The race conditionn is the following. When a FSEvent#stop is called, it
    kills the child process and closes the pipe. It can happen that the kill
    signal is sent and then succesfully the pipe is closed, before the child
    process dies and the pipe in the parent is closed.
    
    This means that IO::select() can raise a Errno::EBADF if the file
    descriptor is closed while waiting in select(). This additional rescue
    makes sure we shutdown in this case just like any others. This is a much
    more reliable solution than adding for example a sleep() between
    Process.kill and @pipe.close in FSEvent#stop.
    
    Found because of rubinius/rubinius#2102.