1 | $|=1; |
1 | $|=1; |
2 | print "1..6\n"; |
2 | print "1..4\n"; |
3 | |
3 | |
4 | use Coro; |
4 | use Coro; |
|
|
5 | use Coro::Signal; |
5 | use Coro::Timer; |
6 | use Coro::Timer; |
6 | |
7 | |
7 | print "ok 1\n"; |
8 | print "ok 1\n"; |
8 | |
9 | |
9 | new Coro::Timer after => 0, cb => sub { |
10 | my $signal = new Coro::Signal; |
10 | print "ok 2\n"; |
|
|
11 | }; |
|
|
12 | new Coro::Timer after => 1, cb => sub { |
|
|
13 | print "ok 4\n"; |
|
|
14 | }; |
|
|
15 | new Coro::Timer after => 0, cb => sub { |
|
|
16 | print "ok 3\n"; |
|
|
17 | }; |
|
|
18 | (new Coro::Timer after => 0, cb => sub { |
|
|
19 | print "not ok 4\n"; |
|
|
20 | })->cancel; |
|
|
21 | new Coro::Timer at => time + 2, cb => sub { |
|
|
22 | print "ok 5\n"; |
|
|
23 | $Coro::main->ready; |
|
|
24 | }; |
|
|
25 | |
11 | |
26 | schedule; |
12 | my $timeout = Coro::Timer::timeout 3; |
27 | print "ok 6\n"; |
13 | |
|
|
14 | print $signal->timed_wait(1) ? "not ok" : "ok", " 2\n"; |
|
|
15 | |
|
|
16 | print $timeout ? "not ok" : "ok", " 3\n"; |
|
|
17 | |
|
|
18 | Coro::Timer::sleep 2; |
|
|
19 | |
|
|
20 | print $timeout ? "ok" : "not ok", " 4\n"; |
|
|
21 | |