… | |
… | |
174 | Coro::_set_readyhook (\&AnyEvent::detect); |
174 | Coro::_set_readyhook (\&AnyEvent::detect); |
175 | |
175 | |
176 | AnyEvent::post_detect { |
176 | AnyEvent::post_detect { |
177 | unshift @AnyEvent::CondVar::ISA, "Coro::AnyEvent::CondVar"; |
177 | unshift @AnyEvent::CondVar::ISA, "Coro::AnyEvent::CondVar"; |
178 | |
178 | |
179 | Coro::_set_readyhook undef; |
|
|
180 | |
|
|
181 | my $model = $AnyEvent::MODEL; |
179 | my $model = $AnyEvent::MODEL; |
182 | |
180 | |
183 | if ($model eq "AnyEvent::Impl::EV" and eval { require Coro::EV }) { |
181 | if ($model eq "AnyEvent::Impl::EV" and eval { require Coro::EV }) { |
184 | # provider faster versions of some functions |
182 | # provide faster versions of some functions |
|
|
183 | Coro::EV::_set_readyhook (); |
185 | |
184 | |
186 | eval ' |
185 | eval ' |
187 | *sleep = \&Coro::EV::timer_once; |
186 | *sleep = \&Coro::EV::timer_once; |
188 | *poll = \&Coro::EV::_poll; |
187 | *poll = \&Coro::EV::_poll; |
189 | *idle = sub() { |
188 | *idle = sub() { |
… | |
… | |
204 | }; |
203 | }; |
205 | '; |
204 | '; |
206 | die if $@; |
205 | die if $@; |
207 | |
206 | |
208 | } elsif ($model eq "AnyEvent::Impl::Event" and eval { require Coro::Event }) { |
207 | } elsif ($model eq "AnyEvent::Impl::Event" and eval { require Coro::Event }) { |
|
|
208 | Coro::_set_readyhook undef; |
209 | # let Coro::Event do its thing |
209 | # let Coro::Event do its thing |
210 | } else { |
210 | } else { |
211 | # do the inefficient thing ourselves |
211 | # do the inefficient thing ourselves |
212 | Coro::_set_readyhook \&_activity; |
212 | Coro::_set_readyhook \&_activity; |
213 | |
213 | |