ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent.pm (file contents):
Revision 1.410 by root, Fri Mar 1 06:03:21 2013 UTC vs.
Revision 1.414 by root, Wed Aug 21 08:40:28 2013 UTC

271 271
272Example 2: fire an event after 0.5 seconds, then roughly every second. 272Example 2: fire an event after 0.5 seconds, then roughly every second.
273 273
274 my $w = AnyEvent->timer (after => 0.5, interval => 1, cb => sub { 274 my $w = AnyEvent->timer (after => 0.5, interval => 1, cb => sub {
275 warn "timeout\n"; 275 warn "timeout\n";
276 }; 276 });
277 277
278=head3 TIMING ISSUES 278=head3 TIMING ISSUES
279 279
280There are two ways to handle timers: based on real time (relative, "fire 280There are two ways to handle timers: based on real time (relative, "fire
281in 10 seconds") and based on wallclock time (absolute, "fire at 12 281in 10 seconds") and based on wallclock time (absolute, "fire at 12
1147a longer non-exhaustive list), and the list is heavily biased towards 1147a longer non-exhaustive list), and the list is heavily biased towards
1148modules of the AnyEvent author himself :) 1148modules of the AnyEvent author himself :)
1149 1149
1150=over 4 1150=over 4
1151 1151
1152=item L<AnyEvent::Util> 1152=item L<AnyEvent::Util> (part of the AnyEvent distribution)
1153 1153
1154Contains various utility functions that replace often-used blocking 1154Contains various utility functions that replace often-used blocking
1155functions such as C<inet_aton> with event/callback-based versions. 1155functions such as C<inet_aton> with event/callback-based versions.
1156 1156
1157=item L<AnyEvent::Socket> 1157=item L<AnyEvent::Socket> (part of the AnyEvent distribution)
1158 1158
1159Provides various utility functions for (internet protocol) sockets, 1159Provides various utility functions for (internet protocol) sockets,
1160addresses and name resolution. Also functions to create non-blocking tcp 1160addresses and name resolution. Also functions to create non-blocking tcp
1161connections or tcp servers, with IPv6 and SRV record support and more. 1161connections or tcp servers, with IPv6 and SRV record support and more.
1162 1162
1163=item L<AnyEvent::Handle> 1163=item L<AnyEvent::Handle> (part of the AnyEvent distribution)
1164 1164
1165Provide read and write buffers, manages watchers for reads and writes, 1165Provide read and write buffers, manages watchers for reads and writes,
1166supports raw and formatted I/O, I/O queued and fully transparent and 1166supports raw and formatted I/O, I/O queued and fully transparent and
1167non-blocking SSL/TLS (via L<AnyEvent::TLS>). 1167non-blocking SSL/TLS (via L<AnyEvent::TLS>).
1168 1168
1169=item L<AnyEvent::DNS> 1169=item L<AnyEvent::DNS> (part of the AnyEvent distribution)
1170 1170
1171Provides rich asynchronous DNS resolver capabilities. 1171Provides rich asynchronous DNS resolver capabilities.
1172 1172
1173=item L<AnyEvent::HTTP>, L<AnyEvent::IRC>, L<AnyEvent::XMPP>, L<AnyEvent::GPSD>, L<AnyEvent::IGS>, L<AnyEvent::FCP> 1173=item L<AnyEvent::HTTP>, L<AnyEvent::IRC>, L<AnyEvent::XMPP>, L<AnyEvent::GPSD>, L<AnyEvent::IGS>, L<AnyEvent::FCP>
1174 1174
1175Implement event-based interfaces to the protocols of the same name (for 1175Implement event-based interfaces to the protocols of the same name (for
1176the curious, IGS is the International Go Server and FCP is the Freenet 1176the curious, IGS is the International Go Server and FCP is the Freenet
1177Client Protocol). 1177Client Protocol).
1178 1178
1179=item L<AnyEvent::AIO> 1179=item L<AnyEvent::AIO> (part of the AnyEvent distribution)
1180 1180
1181Truly asynchronous (as opposed to non-blocking) I/O, should be in the 1181Truly asynchronous (as opposed to non-blocking) I/O, should be in the
1182toolbox of every event programmer. AnyEvent::AIO transparently fuses 1182toolbox of every event programmer. AnyEvent::AIO transparently fuses
1183L<IO::AIO> and AnyEvent together, giving AnyEvent access to event-based 1183L<IO::AIO> and AnyEvent together, giving AnyEvent access to event-based
1184file I/O, and much more. 1184file I/O, and much more.
1229 1229
1230=cut 1230=cut
1231 1231
1232package AnyEvent; 1232package AnyEvent;
1233 1233
1234# basically a tuned-down version of common::sense 1234BEGIN {
1235sub common_sense { 1235 require "AnyEvent/constants.pl";
1236 # from common:.sense 3.5 1236 &AnyEvent::common_sense;
1237 local $^W;
1238 ${^WARNING_BITS} ^= ${^WARNING_BITS} ^ "\x3c\x3f\x33\x00\x0f\xf0\x0f\xc0\xf0\xfc\x33\x00";
1239 # use strict vars subs - NO UTF-8, as Util.pm doesn't like this atm. (uts46data.pl)
1240 $^H |= 0x00000600;
1241} 1237}
1242
1243BEGIN { AnyEvent::common_sense }
1244 1238
1245use Carp (); 1239use Carp ();
1246 1240
1247our $VERSION = '7.04'; 1241our $VERSION = '7.05';
1248our $MODEL; 1242our $MODEL;
1249our @ISA; 1243our @ISA;
1250our @REGISTRY; 1244our @REGISTRY;
1251our $VERBOSE; 1245our $VERBOSE;
1252our %PROTOCOL; # (ipv4|ipv6) => (1|2), higher numbers are preferred 1246our %PROTOCOL; # (ipv4|ipv6) => (1|2), higher numbers are preferred
1253our $MAX_SIGNAL_LATENCY = $ENV{PERL_ANYEVENT_MAX_SIGNAL_LATENCY} || 10; # executes after the BEGIN block below (tainting!) 1247our $MAX_SIGNAL_LATENCY = $ENV{PERL_ANYEVENT_MAX_SIGNAL_LATENCY} || 10; # executes after the BEGIN block below (tainting!)
1254 1248
1255BEGIN { 1249BEGIN {
1256 require "AnyEvent/constants.pl";
1257
1258 eval "sub TAINT (){" . (${^TAINT}*1) . "}"; 1250 eval "sub TAINT (){" . (${^TAINT}*1) . "}";
1259 1251
1260 delete @ENV{grep /^PERL_ANYEVENT_/, keys %ENV} 1252 delete @ENV{grep /^PERL_ANYEVENT_/, keys %ENV}
1261 if ${^TAINT}; 1253 if ${^TAINT};
1262 1254

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines