Methods

EM

Public Class Methods

fork(num = 1, &blk) click to toggle source

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
forks() click to toggle source

@private

    # File lib/amqp/ext/emfork.rb, line 51
51: def EM.forks
52:   @forks ? @forks.keys : []
53: end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.