mitchellh/vagrant — pull request #3552 by benesch (2014-04-26 20:27:54+00:00)
Title: command/rsync-auto: properly exit on interrupt

Currently, interrupting 'vagrant rsync-auto' once it's waiting for
filesystem events has no effect. Appears to be a deadlock related to
signal handlers in Ruby 2.0 [0].

Remove call to `thread.join` in signal handler. The handler doesn't
need to wait for `true` to be added to the queue; it just needs to
launch the thread.

To reproduce:

1. Launch `vagrant rsync-auto`.
1. Wait for Vagrant to print "Watching: "
1. Press Ctrl+C repeatedly. Note that nothing happens.

OS X 10.9.2, Ruby 2.0.0p353

[0]: https://bugs.ruby-lang.org/issues/7917