ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro.pm
(Generate patch)

Comparing Coro/Coro.pm (file contents):
Revision 1.135 by root, Sat Sep 22 22:39:15 2007 UTC vs.
Revision 1.140 by root, Thu Sep 27 16:25:10 2007 UTC

50 50
51our $idle; # idle handler 51our $idle; # idle handler
52our $main; # main coroutine 52our $main; # main coroutine
53our $current; # current coroutine 53our $current; # current coroutine
54 54
55our $VERSION = '3.7'; 55our $VERSION = '3.8';
56 56
57our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub); 57our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub);
58our %EXPORT_TAGS = ( 58our %EXPORT_TAGS = (
59 prio => [qw(PRIO_MAX PRIO_HIGH PRIO_NORMAL PRIO_LOW PRIO_IDLE PRIO_MIN)], 59 prio => [qw(PRIO_MAX PRIO_HIGH PRIO_NORMAL PRIO_LOW PRIO_IDLE PRIO_MIN)],
60); 60);
241 my $cb; 241 my $cb;
242 242
243 while () { 243 while () {
244 eval { 244 eval {
245 while () { 245 while () {
246# &{&_pool_1 or &terminate}; # crashes, would be ~5% faster
247 $cb = &_pool_1 246 _pool_1 $cb;
248 or &terminate;
249 &$cb; 247 &$cb;
250 undef $cb; 248 _pool_2 $cb;
251 &terminate if &_pool_2;
252 &schedule; 249 &schedule;
253 } 250 }
254 }; 251 };
255 252
253 last if $@ eq "\3terminate\2\n";
256 warn $@ if $@; 254 warn $@ if $@;
257 } 255 }
258} 256}
259 257
260sub async_pool(&@) { 258sub async_pool(&@) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines