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

Comparing cvsroot/Coro/Coro.pm (file contents):
Revision 1.252 by root, Thu Apr 16 20:07:21 2009 UTC vs.
Revision 1.254 by root, Tue Jun 16 17:19:08 2009 UTC

80 80
81our $idle; # idle handler 81our $idle; # idle handler
82our $main; # main coro 82our $main; # main coro
83our $current; # current coro 83our $current; # current coro
84 84
85our $VERSION = 5.131; 85our $VERSION = 5.132;
86 86
87our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub); 87our @EXPORT = qw(async async_pool cede schedule terminate current unblock_sub);
88our %EXPORT_TAGS = ( 88our %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);
338 338
339These functions implement the same concept as C<dynamic-wind> in scheme 339These functions implement the same concept as C<dynamic-wind> in scheme
340does, and are useful when you want to localise some resource to a specific 340does, and are useful when you want to localise some resource to a specific
341coro. 341coro.
342 342
343They slow down coro switching considerably for coros that use 343They slow down thread switching considerably for coros that use them
344them (But coro switching is still reasonably fast if the handlers are 344(about 40% for a BLOCK with a single assignment, so thread switching is
345fast). 345still reasonably fast if the handlers are fast).
346 346
347These functions are best understood by an example: The following function 347These functions are best understood by an example: The following function
348will change the current timezone to "Antarctica/South_Pole", which 348will change the current timezone to "Antarctica/South_Pole", which
349requires a call to C<tzset>, but by using C<on_enter> and C<on_leave>, 349requires a call to C<tzset>, but by using C<on_enter> and C<on_leave>,
350which remember/change the current timezone and restore the previous 350which remember/change the current timezone and restore the previous

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines