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