… | |
… | |
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.131; |
85 | our $VERSION = 5.132; |
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 | ); |
… | |
… | |
338 | |
338 | |
339 | These functions implement the same concept as C<dynamic-wind> in scheme |
339 | These functions implement the same concept as C<dynamic-wind> in scheme |
340 | does, and are useful when you want to localise some resource to a specific |
340 | does, and are useful when you want to localise some resource to a specific |
341 | coro. |
341 | coro. |
342 | |
342 | |
343 | They slow down coro switching considerably for coros that use |
343 | They slow down thread switching considerably for coros that use them |
344 | them (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 |
345 | fast). |
345 | still reasonably fast if the handlers are fast). |
346 | |
346 | |
347 | These functions are best understood by an example: The following function |
347 | These functions are best understood by an example: The following function |
348 | will change the current timezone to "Antarctica/South_Pole", which |
348 | will change the current timezone to "Antarctica/South_Pole", which |
349 | requires a call to C<tzset>, but by using C<on_enter> and C<on_leave>, |
349 | requires a call to C<tzset>, but by using C<on_enter> and C<on_leave>, |
350 | which remember/change the current timezone and restore the previous |
350 | which remember/change the current timezone and restore the previous |