… | |
… | |
80 | |
80 | |
81 | our $idle; # idle handler |
81 | our $idle; # idle handler |
82 | our $main; # main coro |
82 | our $main; # main coro |
83 | our $current; # current coro |
83 | our $current; # current coro |
84 | |
84 | |
85 | our $VERSION = 5.161; |
85 | our $VERSION = 5.162; |
86 | |
86 | |
87 | our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub); |
87 | our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub); |
88 | our %EXPORT_TAGS = ( |
88 | our %EXPORT_TAGS = ( |
89 | prio => [qw(PRIO_MAX PRIO_HIGH PRIO_NORMAL PRIO_LOW PRIO_IDLE PRIO_MIN)], |
89 | prio => [qw(PRIO_MAX PRIO_HIGH PRIO_NORMAL PRIO_LOW PRIO_IDLE PRIO_MIN)], |
90 | ); |
90 | ); |
… | |
… | |
206 | Example: Create a new coro that just prints its arguments. |
206 | Example: Create a new coro that just prints its arguments. |
207 | |
207 | |
208 | async { |
208 | async { |
209 | print "@_\n"; |
209 | print "@_\n"; |
210 | } 1,2,3,4; |
210 | } 1,2,3,4; |
211 | |
|
|
212 | =cut |
|
|
213 | |
|
|
214 | sub async(&@) { |
|
|
215 | my $coro = new Coro @_; |
|
|
216 | $coro->ready; |
|
|
217 | $coro |
|
|
218 | } |
|
|
219 | |
211 | |
220 | =item async_pool { ... } [@args...] |
212 | =item async_pool { ... } [@args...] |
221 | |
213 | |
222 | Similar to C<async>, but uses a coro pool, so you should not call |
214 | Similar to C<async>, but uses a coro pool, so you should not call |
223 | terminate or join on it (although you are allowed to), and you get a |
215 | terminate or join on it (although you are allowed to), and you get a |