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
new()
click to toggle source
Calls superclass method
Sequel::Database::AsyncThreadPool::BaseProxy::new
# File lib/sequel/extensions/async_thread_pool.rb 304 def initialize 305 super 306 @queue = ::Queue.new 307 end
Private Instance Methods
__get_value()
click to toggle 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
__run()
click to toggle source
# File lib/sequel/extensions/async_thread_pool.rb 311 def __run 312 @queue.push(__run_block) 313 end