class Wire::MessageCallback
Public Class Methods
new(message_hash, message_id, callback, timeout_seconds)
click to toggle source
# File lib/wire.rb, line 57 def initialize (message_hash, message_id, callback, timeout_seconds) @semaphore = Mutex.new @callback = callback @result = nil Thread.new do sleep(timeout_seconds) message_hash.delete(message_id) @semaphore.synchronize do if @result.nil? callback.timeout end end end end
Public Instance Methods
set_result(result)
click to toggle source
# File lib/wire.rb, line 73 def set_result (result) @semaphore.synchronize do @result = result @callback.complete(@result) end end