… | |
… | |
34 | use AnyEvent (); |
34 | use AnyEvent (); |
35 | use IO::AIO (); |
35 | use IO::AIO (); |
36 | |
36 | |
37 | use base Exporter::; |
37 | use base Exporter::; |
38 | |
38 | |
39 | our $VERSION = '1.0'; |
39 | our $VERSION = '1.1'; |
40 | our $WATCHER; |
40 | our $WATCHER; |
41 | |
41 | |
42 | $WATCHER = AnyEvent::post_detect { |
42 | my $guard = AnyEvent::post_detect { |
43 | if ($AnyEvent::MODEL eq "AnyEvent::Impl::EV") { |
|
|
44 | $WATCHER = EV::io (IO::AIO::poll_fileno, &EV::READ, \&IO::AIO::poll_cb); |
|
|
45 | } else { |
|
|
46 | our $FH; open $FH, "<&=" . IO::AIO::poll_fileno; |
|
|
47 | $WATCHER = AnyEvent->io (fh => $FH, poll => 'r', cb => \&IO::AIO::poll_cb); |
43 | $WATCHER = AnyEvent->io (fh => IO::AIO::poll_fileno, poll => 'r', cb => \&IO::AIO::poll_cb); |
48 | } |
|
|
49 | }; |
44 | }; |
|
|
45 | $WATCHER ||= $guard; |
50 | |
46 | |
51 | IO::AIO::_on_next_submit \&AnyEvent::detect; |
47 | IO::AIO::_on_next_submit \&AnyEvent::detect; |
52 | |
48 | |
53 | =head1 SEE ALSO |
49 | =head1 SEE ALSO |
54 | |
50 | |