--- AnyEvent/README 2008/07/12 20:45:27 1.28 +++ AnyEvent/README 2008/07/29 10:20:33 1.29 @@ -7,17 +7,26 @@ SYNOPSIS use AnyEvent; - my $w = AnyEvent->io (fh => $fh, poll => "r|w", cb => sub { - ... - }); + my $w = AnyEvent->io (fh => $fh, poll => "r|w", cb => sub { ... }); + + my $w = AnyEvent->timer (after => $seconds, cb => sub { ... }); + my $w = AnyEvent->timer (after => $seconds, interval => $seconds, cb => ... + + print AnyEvent->now; # prints current event loop time + print AnyEvent->time; # think Time::HiRes::time or simply CORE::time. - my $w = AnyEvent->timer (after => $seconds, cb => sub { + my $w = AnyEvent->signal (signal => "TERM", cb => sub { ... }); + + my $w = AnyEvent->child (pid => $pid, cb => sub { + my ($pid, $status) = @_; ... }); my $w = AnyEvent->condvar; # stores whether a condition was flagged $w->send; # wake up current and all future recv's $w->recv; # enters "main loop" till $condvar gets ->send + # use a condvar in callback mode: + $w->cb (sub { $_[0]->recv }); INTRODUCTION/TUTORIAL This manpage is mainly a reference manual. If you are interested in a @@ -373,8 +382,10 @@ Condition variables can be created by calling the "AnyEvent->condvar" method, usually without arguments. The only argument pair allowed is + "cb", which specifies a callback to be called when the condition - variable becomes true. + variable becomes true, with the condition variable as the first argument + (but not the results). After creation, the condition variable is "false" until it becomes "true" by calling the "send" method (or calling the condition variable @@ -440,6 +451,23 @@ my $delay = AnyEvent->timer (after => 5, cb => $done); $done->recv; + Example: Imagine an API that returns a condvar and doesn't support + callbacks. This is how you make a synchronous call, for example from the + main program: + + use AnyEvent::CouchDB; + + ... + + my @info = $couchdb->info->recv; + + And this is how you would just ste a callback to be called whenever the + results are available: + + $couchdb->info->cb (sub { + my @info = $_[0]->recv; + }); + METHODS FOR PRODUCERS These methods should only be used by the producing side, i.e. the code/module that eventually sends the signal. Note that it is also the @@ -569,7 +597,7 @@ Returns true when the condition is "true", i.e. whether "send" or "croak" have been called. - $cb = $cv->cb ([new callback]) + $cb = $cv->cb ($cb->($cv)) This is a mutator function that returns the callback set and optionally replaces it before doing so.