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

# User Rev Content
1 root 1.1 $|=1;
2 root 1.3 print "1..25\n";
3 root 1.1
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 root 1.3 $l->unlock;
29 root 1.1 };
30    
31     print "ok 7\n";
32     cede;
33 root 1.2 cede;
34     cede;
35     cede;
36 root 1.1 print "ok 9\n";
37     $l->unlock;
38     cede;
39 root 1.2
40 root 1.1 print "ok 12\n";
41     $l->rdlock;
42     print "ok 13\n";
43     cede;
44 root 1.2 cede;
45 root 1.1 print "ok 15\n";
46    
47 root 1.3 $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 root 1.1
82    
83    
84    
85