class Thread::Task::Pool
Attributes
rest[R]
Public Class Methods
new( size )
click to toggle source
# File lib/thread/task/base.rb, line 9 def initialize( size ) @rest = size @monitor = Monitor.new @lock_cond = @monitor.new_cond end
Public Instance Methods
acquire()
click to toggle source
# File lib/thread/task/base.rb, line 15 def acquire @monitor.synchronize do @lock_cond.wait_while{ @rest == 0 } @rest -= 1 end end
release()
click to toggle source
# File lib/thread/task/base.rb, line 22 def release @monitor.synchronize do @rest += 1 @lock_cond.signal end end