class BubbleWrap::Reactor::ThreadAwareDeferrable
Public Instance Methods
cache_block_queue(&blk)
click to toggle source
# File motion/reactor/thread_aware_deferrable.rb, line 29 def cache_block_queue(&blk) return unless blk @queue_cache ||= {} @queue_cache[blk.object_id] = Dispatch::Queue.current end
callback(&blk)
click to toggle source
need to store the the queue in callback / errback
Calls superclass method
BubbleWrap::Reactor::Deferrable#callback
# File motion/reactor/thread_aware_deferrable.rb, line 8 def callback(&blk) return unless blk cache_block_queue(&blk) super(&blk) end
errback(&blk)
click to toggle source
Calls superclass method
BubbleWrap::Reactor::Deferrable#errback
# File motion/reactor/thread_aware_deferrable.rb, line 14 def errback(&blk) return unless blk cache_block_queue(&blk) super(&blk) end
execute_block(&blk)
click to toggle source
# File motion/reactor/thread_aware_deferrable.rb, line 20 def execute_block(&blk) return unless blk queue = @queue_cache.delete(blk.object_id) return unless queue queue.async do blk.call(*@deferred_args) end end