--- Coro/t/01_process.t 2006/11/30 18:21:14 1.6 +++ Coro/t/01_process.t 2008/11/20 06:28:52 1.10 @@ -1,11 +1,11 @@ $|=1; -print "1..6\n"; +print "1..13\n"; use Coro; -sub p1 : Coro { +async { print "ok 2\n"; -} +}; print "ok 1\n"; cede; @@ -14,6 +14,7 @@ my $c1 = async { print "ok 5\n"; cede; + print "not ok 8\n";#d# }; print $c1->ready ? "not " : "", "ok 4\n"; @@ -22,3 +23,52 @@ print "ok 6\n"; +$c1->on_destroy (sub { + print "ok 7\n"; +}); + +$c1->cancel; + +print "ok 8\n"; + +cede; cede; + +print "ok 9\n"; + +{ + my $as1 = async { + print "not ok 10\n"; + }; + + my $as2 = async { + print "ok 10\n"; + $as1->cancel; + }; + + $as2->cede_to; +} + +{ + my $as1 = async { + print "not ok 11\n"; + }; + + my $as2 = async { + print "ok 11\n"; + $as1->cancel; + cede; + print "ok 12\n"; + $Coro::main->ready; + $Coro::main->throw ("exit"); + }; + + local $SIG{__DIE__} = sub { + print "ok 13\n"; + exit if $@ eq "exit"; + }; + + $as2->schedule_to; +} + +print "not ok 12\n"; +