class ServerEngine::BlockingFlag
Public Class Methods
new()
click to toggle source
# File lib/serverengine/blocking_flag.rb, line 22 def initialize @set = false @mutex = Mutex.new @cond = ConditionVariable.new end
Public Instance Methods
reset!()
click to toggle source
# File lib/serverengine/blocking_flag.rb, line 40 def reset! toggled = false @mutex.synchronize do if @set @set = false toggled = true end @cond.broadcast end return toggled end
set!()
click to toggle source
# File lib/serverengine/blocking_flag.rb, line 28 def set! toggled = false @mutex.synchronize do unless @set @set = true toggled = true end @cond.broadcast end return toggled end
set?()
click to toggle source
# File lib/serverengine/blocking_flag.rb, line 52 def set? @set end
wait_for_reset(timeout=nil)
click to toggle source
# File lib/serverengine/blocking_flag.rb, line 67 def wait_for_reset(timeout=nil) @mutex.synchronize do if @set @cond.wait(@mutex, timeout) end return !@set end end
wait_for_set(timeout=nil)
click to toggle source
# File lib/serverengine/blocking_flag.rb, line 56 def wait_for_set(timeout=nil) @mutex.synchronize do unless @set @cond.wait(@mutex, timeout) end return @set end end
Also aliased as: wait