… | |
… | |
319 | |
319 | |
320 | In either case, if you care (and in most cases, you don't), then you |
320 | In either case, if you care (and in most cases, you don't), then you |
321 | can get whatever behaviour you want with any event loop, by taking the |
321 | can get whatever behaviour you want with any event loop, by taking the |
322 | difference between C<< AnyEvent->time >> and C<< AnyEvent->now >> into |
322 | difference between C<< AnyEvent->time >> and C<< AnyEvent->now >> into |
323 | account. |
323 | account. |
|
|
324 | |
|
|
325 | =item AnyEvent->now_update |
|
|
326 | |
|
|
327 | Some event loops (such as L<EV> or L<AnyEvent::Impl::Perl>) cache |
|
|
328 | the current time for each loop iteration (see the discussion of L<< |
|
|
329 | AnyEvent->now >>, above). |
|
|
330 | |
|
|
331 | When a callback runs for a long time (or when the process sleeps), then |
|
|
332 | this "current" time will differ substantially from the real time, which |
|
|
333 | might affect timers and time-outs. |
|
|
334 | |
|
|
335 | When this is the case, you can call this method, which will update the |
|
|
336 | event loop's idea of "current time". |
|
|
337 | |
|
|
338 | Note that updating the time I<might> cause some events to be handled. |
324 | |
339 | |
325 | =back |
340 | =back |
326 | |
341 | |
327 | =head2 SIGNAL WATCHERS |
342 | =head2 SIGNAL WATCHERS |
328 | |
343 | |
… | |
… | |
915 | [POE::Kernel:: => AnyEvent::Impl::POE::], # lasciate ogni speranza |
930 | [POE::Kernel:: => AnyEvent::Impl::POE::], # lasciate ogni speranza |
916 | [Wx:: => AnyEvent::Impl::POE::], |
931 | [Wx:: => AnyEvent::Impl::POE::], |
917 | [Prima:: => AnyEvent::Impl::POE::], |
932 | [Prima:: => AnyEvent::Impl::POE::], |
918 | ); |
933 | ); |
919 | |
934 | |
920 | our %method = map +($_ => 1), qw(io timer time now signal child condvar one_event DESTROY); |
935 | our %method = map +($_ => 1), |
|
|
936 | qw(io timer time now now_update signal child condvar one_event DESTROY); |
921 | |
937 | |
922 | our @post_detect; |
938 | our @post_detect; |
923 | |
939 | |
924 | sub post_detect(&) { |
940 | sub post_detect(&) { |
925 | my ($cb) = @_; |
941 | my ($cb) = @_; |
… | |
… | |
1031 | ($fh2, $rw) |
1047 | ($fh2, $rw) |
1032 | } |
1048 | } |
1033 | |
1049 | |
1034 | package AnyEvent::Base; |
1050 | package AnyEvent::Base; |
1035 | |
1051 | |
1036 | # default implementation for now and time |
1052 | # default implementations for many methods |
1037 | |
1053 | |
1038 | BEGIN { |
1054 | BEGIN { |
1039 | if (eval "use Time::HiRes (); time (); 1") { |
1055 | if (eval "use Time::HiRes (); time (); 1") { |
1040 | *_time = \&Time::HiRes::time; |
1056 | *_time = \&Time::HiRes::time; |
1041 | # if (eval "use POSIX (); (POSIX::times())... |
1057 | # if (eval "use POSIX (); (POSIX::times())... |
… | |
… | |
1044 | } |
1060 | } |
1045 | } |
1061 | } |
1046 | |
1062 | |
1047 | sub time { _time } |
1063 | sub time { _time } |
1048 | sub now { _time } |
1064 | sub now { _time } |
|
|
1065 | sub now_update { } |
1049 | |
1066 | |
1050 | # default implementation for ->condvar |
1067 | # default implementation for ->condvar |
1051 | |
1068 | |
1052 | sub condvar { |
1069 | sub condvar { |
1053 | bless { @_ == 3 ? (_ae_cb => $_[2]) : () }, AnyEvent::CondVar:: |
1070 | bless { @_ == 3 ? (_ae_cb => $_[2]) : () }, AnyEvent::CondVar:: |