stripe/einhorn — pull request #22 by gdb (2013-03-25 19:15:42+00:00)
Title: Run signal handler blocks in the event loop

This fixes the following bug:

[MASTER 965] INFO: Reloading einhorn (.../vendor/bundle/ruby/1.9.1/bin/einhorn)...
.../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command.rb:183:in `[]=': can't add a new key into hash during iteration (RuntimeError)
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command.rb:183:in `block in reload'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command.rb:180:in `fork'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command.rb:180:in `reload'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command.rb:289:in `reload_for_preload_upgrade'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command.rb:281:in `full_upgrade'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command/interface.rb:166:in `block in install_handlers'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn.rb:12:in `call'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn.rb:12:in `state'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn.rb:18:in `method_missing'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/worker_pool.rb:15:in `block in modern_workers_with_state'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/worker_pool.rb:14:in `select'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/worker_pool.rb:14:in `modern_workers_with_state'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/worker_pool.rb:20:in `acked_modern_workers_with_state'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/worker_pool.rb:32:in `acked_unsignaled_modern_workers'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/worker_pool.rb:49:in `ack_count'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn/command.rb:311:in `cull'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/lib/einhorn.rb:327:in `run'
from .../vendor/bundle/ruby/1.9.1/bundler/gems/einhorn-27f5313b9627/bin/einhorn:304:in `'