--- AnyEvent/lib/AnyEvent.pm 2008/05/10 20:30:35 1.113 +++ AnyEvent/lib/AnyEvent.pm 2008/05/30 21:38:46 1.146 @@ -1,4 +1,4 @@ -=head1 NAME +=head1 => NAME AnyEvent - provide framework for multiple event loops @@ -17,8 +17,8 @@ }); my $w = AnyEvent->condvar; # stores whether a condition was flagged - $w->wait; # enters "main loop" till $condvar gets ->send - $w->send; # wake up current and all future wait's + $w->send; # wake up current and all future recv's + $w->recv; # enters "main loop" till $condvar gets ->send =head1 WHY YOU SHOULD USE THIS MODULE (OR NOT) @@ -50,7 +50,7 @@ AnyEvent is different: AnyEvent + POE works fine. AnyEvent + Glib works fine. AnyEvent + Tk works fine etc. etc. but none of these work together -with the rest: POE + IO::Async? no go. Tk + Event? no go. Again: if +with the rest: POE + IO::Async? No go. Tk + Event? No go. Again: if your module uses one of those, every user of your module has to use it, too. But if your module uses AnyEvent, it works transparently with all event models it supports (including stuff like POE and IO::Async, as long @@ -59,12 +59,18 @@ In addition to being free of having to use I, AnyEvent also is free of bloat and policy: with POE or similar -modules, you get an enourmous amount of code and strict rules you have to +modules, you get an enormous amount of code and strict rules you have to follow. AnyEvent, on the other hand, is lean and up to the point, by only offering the functionality that is necessary, in as thin as a wrapper as technically possible. -Of course, if you want lots of policy (this can arguably be somewhat +Of course, AnyEvent comes with a big (and fully optional!) toolbox +of useful functionality, such as an asynchronous DNS resolver, 100% +non-blocking connects (even with TLS/SSL, IPv6 and on broken platforms +such as Windows) and lots of real-world knowledge and workarounds for +platform bugs and differences. + +Now, if you I lots of policy (this can arguably be somewhat useful) and you want to force your users to use the one and only event model, you should I use this module. @@ -104,13 +110,13 @@ The pure-perl implementation of AnyEvent is called C. Like other event modules you can load it -explicitly. +explicitly and enjoy the high availability of that event loop :) =head1 WATCHERS AnyEvent has the central concept of a I, which is an object that stores relevant data for each kind of event you are waiting for, such as -the callback to call, the filehandle to watch, etc. +the callback to call, the file handle to watch, etc. These watchers are normal Perl objects with normal Perl lifetime. After creating a watcher it will immediately "watch" for events and invoke the @@ -229,6 +235,69 @@ AnyEvent always prefers relative timers, if available, matching the AnyEvent API. +AnyEvent has two additional methods that return the "current time": + +=over 4 + +=item AnyEvent->time + +This returns the "current wallclock time" as a fractional number of +seconds since the Epoch (the same thing as C