module BitGirder::Concurrent::EmUtils
Public Class Methods
defer( callback, &blk )
click to toggle source
# File lib/bitgirder/concurrent.rb, line 377 def defer( callback, &blk ) ensure_em not_nil( callback, :callback ) raise "Need an operation block" unless blk op = lambda do begin Completion.create_success( blk.call ) rescue Exception => e Completion.create_failure( e ) end end EM.defer( op, callback ) end
ensure_em()
click to toggle source
# File lib/bitgirder/concurrent.rb, line 370 def self.ensure_em unless @@did_require Concurrent.require_em @@did_require = true end end
Private Instance Methods
defer( callback, &blk )
click to toggle source
# File lib/bitgirder/concurrent.rb, line 377 def defer( callback, &blk ) ensure_em not_nil( callback, :callback ) raise "Need an operation block" unless blk op = lambda do begin Completion.create_success( blk.call ) rescue Exception => e Completion.create_failure( e ) end end EM.defer( op, callback ) end