ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/t/04_rwlock.t
Revision: 1.3
Committed: Fri Jul 19 15:29:50 2019 UTC (4 years, 10 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-6_55, rel-6_56, rel-6_57, HEAD
Changes since 1.2: +36 -1 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 $|=1;
2 print "1..25\n";
3
4 use Coro;
5 use Coro::RWLock;
6
7 my $l = new Coro::RWLock;
8
9 print "ok 1\n";
10 $l->rdlock;
11 print (($l->tryrdlock ? "" : "not "), "ok 2\n");
12 print (($l->trywrlock ? "not " : ""), "ok 3\n");
13 $l->unlock;
14 $l->unlock;
15 print (($l->trywrlock ? "" : "not "), "ok 4\n");
16 print (($l->trywrlock ? "not " : ""), "ok 5\n");
17 print (($l->tryrdlock ? "not " : ""), "ok 6\n");
18
19 async {
20 print "ok 8\n";
21 $l->wrlock;
22 print "ok 10\n";
23 $l->unlock;
24 $l->rdlock;
25 print "ok 11\n";
26 cede;
27 print "ok 14\n";
28 $l->unlock;
29 };
30
31 print "ok 7\n";
32 cede;
33 cede;
34 cede;
35 cede;
36 print "ok 9\n";
37 $l->unlock;
38 cede;
39
40 print "ok 12\n";
41 $l->rdlock;
42 print "ok 13\n";
43 cede;
44 cede;
45 print "ok 15\n";
46
47 $l->unlock;
48 cede;
49
50 print "ok 16\n";
51 $l->wrlock;
52 print "ok 17\n";
53
54 Coro::async_pool {
55 print "ok 18\n";
56 $l->rdlock;
57 print "ok 21\n";
58 cede;
59 print "ok 23\n";
60 $l->unlock;
61 };
62
63 Coro::async_pool {
64 print "ok 19\n";
65 $l->rdlock;
66 print "ok 22\n";
67 cede;
68 print "ok 24\n";
69 $l->unlock;
70 };
71
72 cede;
73
74 print "ok 20\n";
75
76 $l->unlock;
77 cede;
78 cede;
79
80 print "ok 25\n";
81
82
83
84
85