Sha256: 3995cda2631d90e6a148a4fbbe1b83adefd40f7e7aebadaf349056e026f9f55d
Contents?: true
Size: 824 Bytes
Versions: 1
Compression:
Stored size: 824 Bytes
Contents
module BubbleWrap module Reactor class ThreadAwareDeferrable < DefaultDeferrable include ::BubbleWrap::Reactor::Deferrable # need to store the the queue in callback / errback def callback(&blk) return unless blk cache_block_queue(&blk) super(&blk) end def errback(&blk) return unless blk cache_block_queue(&blk) super(&blk) end 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 def cache_block_queue(&blk) return unless blk @queue_cache ||= {} @queue_cache[blk.object_id] = Dispatch::Queue.current end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bubble-wrap-1.8.0 | motion/reactor/thread_aware_deferrable.rb |