Also catch ThreadErrors.

Every once in awhile, these might manifest themselves with a stacktrace
similar to the following:

/Applications/Vagrant/embedded/lib/ruby/2.0.0/thread.rb:188:in
`synchronize': Attempt to unlock a mutex which is locked by another
thread (ThreadError)
  from /Applications/Vagrant/embedded/Linesb/ruby/2.0.0/thread.rb:188:in
`block in pop'
[etc]