Marc Lehmann > Coro > Coro::Timer

Download:
Coro-5.21.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 5.21   Source  

NAME ^

Coro::Timer - timers and timeouts, independent of any event loop

SYNOPSIS ^

 use Coro::Timer qw(sleep timeout);
 # nothing exported by default

 sleep 10;

DESCRIPTION ^

This package implements a simple timer callback system which works independent of the event loop mechanism used.

$flag = timeout $seconds;

This function will wake up the current coroutine after $seconds seconds and sets $flag to true (it is false initially). If $flag goes out of scope earlier nothing happens. This is used to implement the timed_down, timed_wait etc. primitives. It is used like this:

   sub timed_wait {
      my $timeout = Coro::Timer::timeout 60;

      while (condition false) {
         Coro::schedule; # wait until woken up or timeout
         return 0 if $timeout; # timed out
      }

      return 1; # condition satisfied
   }
sleep $seconds

This function works like the built-in sleep, except maybe more precise and, most important, without blocking other coroutines.

AUTHOR ^

 Marc Lehmann <schmorp@schmorp.de>
 http://home.schmorp.de/