4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/combi/reactor.rb', line 4
def self.start(&block)
EM::error_handler do |error|
STDERR << "ERROR IN EM\n"
STDERR << "\t#{error.inspect}"
STDERR << "\t#{error.backtrace.join("\t\n")}" << "\n"
end
Combi.logger.info {"-EM.start- the reactor is running: #{EM::reactor_running?}"}
raise "EM did not shut down" if EM::reactor_running?
@@reactor_thread = Thread.new do
begin
Combi.logger.debug {"------- starting EM reactor"}
EM::run do
Combi.logger.debug {"------- reactor started"}
block.call unless block.nil?
end
ensure
Combi.logger.info {"------- reactor stopped"}
end
end
30.times do
sleep 0.1 unless EM::reactor_running?
end
end
|