class Celluloid::Condition::Waiter
Attributes
condition[R]
task[R]
Public Class Methods
new(condition, task, mailbox, timeout)
click to toggle source
# File lib/celluloid/condition.rb, line 5 def initialize(condition, task, mailbox, timeout) @condition = condition @task = task @mailbox = mailbox @timeout = timeout end
Public Instance Methods
<<(message)
click to toggle source
# File lib/celluloid/condition.rb, line 13 def <<(message) @mailbox << message end
wait()
click to toggle source
# File lib/celluloid/condition.rb, line 17 def wait begin message = @mailbox.receive(@timeout) do |msg| msg.is_a?(SignalConditionRequest) && msg.task == Thread.current end rescue TimedOut raise ConditionError, "timeout after #{@timeout.inspect} seconds" end until message message.value end