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.297 by root, Thu May 12 23:55:39 2011 UTC vs.
Revision 1.299 by root, Tue May 24 02:26:14 2011 UTC

16 cede; # yield to coro 16 cede; # yield to coro
17 print "3\n"; 17 print "3\n";
18 cede; # and again 18 cede; # and again
19 19
20 # use locking 20 # use locking
21 use Coro::Semaphore;
22 my $lock = new Coro::Semaphore; 21 my $lock = new Coro::Semaphore;
23 my $locked; 22 my $locked;
24 23
25 $lock->down; 24 $lock->down;
26 $locked = 1; 25 $locked = 1;
767current Coro. 766current Coro.
768 767
769This is a rather brutal way to free a coro, with some limitations - if 768This is a rather brutal way to free a coro, with some limitations - if
770the thread is inside a C callback that doesn't expect to be canceled, 769the thread is inside a C callback that doesn't expect to be canceled,
771bad things can happen, or if the cancelled thread insists on running 770bad things can happen, or if the cancelled thread insists on running
772complicated cleanup handlers that rely on it'S thread context, things will 771complicated cleanup handlers that rely on its thread context, things will
773not work. 772not work.
774 773
775Any cleanup code being run (e.g. from C<guard> blocks) will be run without 774Any cleanup code being run (e.g. from C<guard> blocks) will be run without
776a thread context, and is not allowed to switch to other threads. On the 775a thread context, and is not allowed to switch to other threads. On the
777plus side, C<< ->cancel >> will always clean up the thread, no matter 776plus side, C<< ->cancel >> will always clean up the thread, no matter

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines