1RWLock(3)             User Contributed Perl Documentation            RWLock(3)
2
3
4

NAME

6       Coro::RWLock - reader/write locks
7

SYNOPSIS

9        use Coro;
10
11        $lck = new Coro::RWLock;
12
13        $lck->rdlock; # acquire read lock
14        $lck->unlock; # unlock lock again
15
16        # or:
17        $lck->wrlock; # acquire write lock
18        $lck->unlock; # unlock lock again
19
20        # try a readlock
21        if ($lck->tryrdlock) {
22           ...;
23           $l->unlock;
24        }
25
26        # try a write lock
27        if ($lck->trywrlock) {
28           ...;
29           $l->unlock;
30        }
31

DESCRIPTION

33       This module implements reader/write locks. A read can be acquired for
34       read by many coroutines in parallel as long as no writer has locked it
35       (shared access). A single write lock can be acquired when no readers
36       exist. RWLocks basically allow many concurrent readers (without
37       writers) OR a single writer (but no readers).
38
39       You don't have to load "Coro::RWLock" manually, it will be loaded
40       automatically when you "use Coro" and call the "new" constructor.
41
42       $l = new Coro::RWLock;
43           Create a new reader/writer lock.
44
45       $l->rdlock
46           Acquire a read lock.
47
48       $l->tryrdlock
49           Try to acquire a read lock.
50
51       $l->wrlock
52           Acquire a write lock.
53
54       $l->trywrlock
55           Try to acquire a write lock.
56
57       $l->unlock
58           Give up a previous "rdlock" or "wrlock".
59

AUTHOR/SUPPORT/CONTACT

61          Marc A. Lehmann <schmorp@schmorp.de>
62          http://software.schmorp.de/pkg/Coro.html
63
64
65
66perl v5.38.0                      2023-07-20                         RWLock(3)
Impressum