class Garcon::WaitableList
Public Class Methods
new()
click to toggle source
# File lib/garcon/task/waitable_list.rb, line 25 def initialize @mutex = Mutex.new @condition = Condition.new @list = [] end
Public Instance Methods
delete(value)
click to toggle source
# File lib/garcon/task/waitable_list.rb, line 47 def delete(value) @mutex.synchronize { @list.delete(value) } end
empty?()
click to toggle source
# File lib/garcon/task/waitable_list.rb, line 36 def empty? @mutex.synchronize { @list.empty? } end
put(value)
click to toggle source
# File lib/garcon/task/waitable_list.rb, line 40 def put(value) @mutex.synchronize do @list << value @condition.signal end end
size()
click to toggle source
# File lib/garcon/task/waitable_list.rb, line 32 def size @mutex.synchronize { @list.size } end
take()
click to toggle source
# File lib/garcon/task/waitable_list.rb, line 51 def take @mutex.synchronize do @condition.wait(@mutex) while @list.empty? @list.shift end end