class Sumac::RemoteEntry
Public Class Methods
new()
click to toggle source
# File lib/sumac/remote_entry.rb, line 4 def initialize @mutex = Mutex.new @condition_variable = ConditionVariable.new @value = nil @value_set = false @complete = false end
Public Instance Methods
cancel()
click to toggle source
# File lib/sumac/remote_entry.rb, line 12 def cancel @mutex.synchronize do @complete = true @value_set = false @value = false end end
complete?()
click to toggle source
# File lib/sumac/remote_entry.rb, line 37 def complete? @complete end
get()
click to toggle source
# File lib/sumac/remote_entry.rb, line 20 def get @mutex.synchronize do @condition_variable.wait(@mutex) unless complete? raise ClosedError unless @value_set @value end end
set(new_value = nil)
click to toggle source
# File lib/sumac/remote_entry.rb, line 28 def set(new_value = nil) @mutex.synchronize do @value_set = true @complete = true @value = new_value @condition_variable.broadcast end end