helper to fork off EM reactors @private
# File lib/amqp/ext/emfork.rb, line 14 14: def EM.fork num = 1, &blk 15: unless @forks 16: trap('CHLD') { 17: pid = Process.wait 18: p [:pid, pid, :died] if EMFORK 19: block = @forks.delete(pid) 20: EM.fork(1, &block) 21: } 22: 23: trap('EXIT') { 24: p [:pid, Process.pid, :exit] if EMFORK 25: @forks.keys.each { |pid| 26: p [:pid, Process.pid, :killing, pid] if EMFORK 27: Process.kill('USR1', pid) 28: } 29: } 30: 31: @forks = {} 32: end 33: 34: num.times do 35: pid = EM.fork_reactor do 36: p [:pid, Process.pid, :started] if EMFORK 37: 38: trap('USR1') { EM.stop_event_loop } 39: trap('CHLD') {} 40: trap('EXIT') {} 41: 42: blk.call 43: end 44: 45: @forks[pid] = blk 46: p [:children, EM.forks] if EMFORK 47: end 48: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.