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