--- Coro/t/01_process.t 2001/07/10 01:43:21 1.1 +++ Coro/t/01_process.t 2008/11/20 06:28:52 1.10 @@ -1,14 +1,74 @@ $|=1; -print "1..3\n"; +print "1..13\n"; use Coro; -use Coro::Process; -sub p1 : Coro { +async { print "ok 2\n"; -} +}; print "ok 1\n"; -yield; +cede; print "ok 3\n"; +my $c1 = async { + print "ok 5\n"; + cede; + print "not ok 8\n";#d# +}; + +print $c1->ready ? "not " : "", "ok 4\n"; + +cede; + +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"; +