++ed by:
ANNELI XYF HAMMER KEEDI REISINGE

32 PAUSE users
33 non-PAUSE users.

Marc A. Lehmann

NAME

Coro::Signal - coroutine signals (binary semaphores)

SYNOPSIS

 use Coro::Signal;

 $sig = new Coro::Signal;

 $sig->wait; # wait for signal

 # ... some other "thread"

 $sig->send;

DESCRIPTION

This module implements signal/binary semaphores/condition variables (basically all the same thing). You can wait for a signal to occur or send it, in which case it will wake up one waiter, or it can be broadcast, waking up all waiters.

$s = new Coro::Signal;

Create a new signal.

$s->wait

Wait for the signal to occur. Returns immediately if the signal has been sent before.

$status = $s->timed_wait($timeout)

Like wait, but returns false if no signal happens within $timeout seconds, otherwise true.

$s->send

Send the signal, waking up one waiting process or remember the signal if no process is waiting.

$s->broadcast

Send the signal, waking up all waiting process. If no process is waiting the signal is lost.

$s->awaited

Return true when the signal is being awaited by some process.

AUTHOR

 Marc Lehmann <pcg@goof.com>
 http://www.goof.com/pcg/marc/