… | |
… | |
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 |