class Sequel::Database::AsyncThreadPool::Proxy
Default object class for async job/proxy result. This uses a queue for synchronization. The JobProcessor
will push a result until the queue, and the code to get the value will pop the result from that queue (and repush the result to handle thread safety).
Public Class Methods
Source
# File lib/sequel/extensions/async_thread_pool.rb 304 def initialize 305 super 306 @queue = ::Queue.new 307 end
Calls superclass method
Sequel::Database::AsyncThreadPool::BaseProxy::new
Private Instance Methods
Source
# File lib/sequel/extensions/async_thread_pool.rb 315 def __get_value 316 @value = @queue.pop 317 318 # Handle thread-safety by repushing the popped value, so that 319 # concurrent calls will receive the same value 320 @queue.push(@value) 321 end
Source
# File lib/sequel/extensions/async_thread_pool.rb 311 def __run 312 @queue.push(__run_block) 313 end