Thread::SemaphorePerl Programmers Reference GThread::Semaphore(3)NAMEThread::Semaphore - thread-safe semaphores
SYNOPSIS
use Thread::Semaphore;
my $s = new Thread::Semaphore;
$s->up; # Also known as the semaphore V -operation.
# The guarded section is here
$s->down; # Also known as the semaphore P -operation.
# The default semaphore value is 1.
my $s = new Thread::Semaphore($initial_value);
$s->up($up_value);
$s->down($up_value);
DESCRIPTION
Semaphores provide a mechanism to regulate access to
resources. Semaphores, unlike locks, aren't tied to par
ticular scalars, and so may be used to control access to
anything you care to use them for.
Semaphores don't limit their values to zero or one, so
they can be used to control access to some resource that
may have more than one of. (For example, filehandles)
Increment and decrement amounts aren't fixed at one
either, so threads can reserve or return multiple
resources at once.
FUNCTIONS AND METHODS
new
new NUMBER
"new" creates a new semaphore, and initializes its
count to the passed number. If no number is
passed, the semaphore's count is set to one.
down
down NUMBER
The "down" method decreases the semaphore's count
by the specified number, or one if no number has
been specified. If the semaphore's count would
drop below zero, this method will block until such
time that the semaphore's count is equal to or
larger than the amount you're "down"ing the
semaphore's count by.
up
up NUMBER
The "up" method increases the semaphore's count by
the number specified, or one if no number's been
specified. This will unblock any thread blocked
trying to "down" the semaphore if the "up" raises
the semaphore count above what the "down"s are
trying to decrement it by.
2001-03-18 perl v5.6.1 Thread::Semaphore(3)