… | |
… | |
57 | |
57 | |
58 | our $idle; # idle handler |
58 | our $idle; # idle handler |
59 | our $main; # main coroutine |
59 | our $main; # main coroutine |
60 | our $current; # current coroutine |
60 | our $current; # current coroutine |
61 | |
61 | |
62 | our $VERSION = '4.1'; |
62 | our $VERSION = '4.51'; |
63 | |
63 | |
64 | our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub); |
64 | our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub); |
65 | our %EXPORT_TAGS = ( |
65 | our %EXPORT_TAGS = ( |
66 | prio => [qw(PRIO_MAX PRIO_HIGH PRIO_NORMAL PRIO_LOW PRIO_IDLE PRIO_MIN)], |
66 | prio => [qw(PRIO_MAX PRIO_HIGH PRIO_NORMAL PRIO_LOW PRIO_IDLE PRIO_MIN)], |
67 | ); |
67 | ); |
… | |
… | |
178 | } |
178 | } |
179 | }; |
179 | }; |
180 | $manager->desc ("[coro manager]"); |
180 | $manager->desc ("[coro manager]"); |
181 | $manager->prio (PRIO_MAX); |
181 | $manager->prio (PRIO_MAX); |
182 | |
182 | |
183 | # static methods. not really. |
|
|
184 | |
|
|
185 | =back |
183 | =back |
186 | |
184 | |
187 | =head2 STATIC METHODS |
185 | =head2 STATIC METHODS |
188 | |
186 | |
189 | Static methods are actually functions that operate on the current coroutine only. |
187 | Static methods are actually functions that operate on the current coroutine only. |
… | |
… | |
309 | |
307 | |
310 | "Cede" to other coroutines. This function puts the current coroutine into the |
308 | "Cede" to other coroutines. This function puts the current coroutine into the |
311 | ready queue and calls C<schedule>, which has the effect of giving up the |
309 | ready queue and calls C<schedule>, which has the effect of giving up the |
312 | current "timeslice" to other coroutines of the same or higher priority. |
310 | current "timeslice" to other coroutines of the same or higher priority. |
313 | |
311 | |
314 | Returns true if at least one coroutine switch has happened. |
|
|
315 | |
|
|
316 | =item Coro::cede_notself |
312 | =item Coro::cede_notself |
317 | |
313 | |
318 | Works like cede, but is not exported by default and will cede to any |
314 | Works like cede, but is not exported by default and will cede to any |
319 | coroutine, regardless of priority, once. |
315 | coroutine, regardless of priority, once. |
320 | |
|
|
321 | Returns true if at least one coroutine switch has happened. |
|
|
322 | |
316 | |
323 | =item terminate [arg...] |
317 | =item terminate [arg...] |
324 | |
318 | |
325 | Terminates the current coroutine with the given status values (see L<cancel>). |
319 | Terminates the current coroutine with the given status values (see L<cancel>). |
326 | |
320 | |
… | |
… | |
342 | if $_ != $current && UNIVERSAL::isa $_, "Coro"; |
336 | if $_ != $current && UNIVERSAL::isa $_, "Coro"; |
343 | } |
337 | } |
344 | } |
338 | } |
345 | |
339 | |
346 | =back |
340 | =back |
347 | |
|
|
348 | # dynamic methods |
|
|
349 | |
341 | |
350 | =head2 COROUTINE METHODS |
342 | =head2 COROUTINE METHODS |
351 | |
343 | |
352 | These are the methods you can call on coroutine objects. |
344 | These are the methods you can call on coroutine objects. |
353 | |
345 | |
… | |
… | |
632 | |
624 | |
633 | Event/IO: L<Coro::Timer>, L<Coro::Event>, L<Coro::Handle>, L<Coro::Socket>. |
625 | Event/IO: L<Coro::Timer>, L<Coro::Event>, L<Coro::Handle>, L<Coro::Socket>. |
634 | |
626 | |
635 | Compatibility: L<Coro::LWP>, L<Coro::Storable>, L<Coro::Select>. |
627 | Compatibility: L<Coro::LWP>, L<Coro::Storable>, L<Coro::Select>. |
636 | |
628 | |
637 | Embedding: L<Coro:MakeMaker>. |
629 | Embedding: L<Coro::MakeMaker>. |
638 | |
630 | |
639 | =head1 AUTHOR |
631 | =head1 AUTHOR |
640 | |
632 | |
641 | Marc Lehmann <schmorp@schmorp.de> |
633 | Marc Lehmann <schmorp@schmorp.de> |
642 | http://home.schmorp.de/ |
634 | http://home.schmorp.de/ |