Coro::RWLock3pm
Reader/write locks
Usage
use Coro;$lck = new Coro::RWLock;$lck->rdlock; # acquire read lock$lck->unlock; # unlock lock again# or:$lck->wrlock; # acquire write lock$lck->unlock; # unlock lock again# try a readlockif ($lck->tryrdlock) {...;$l->unlock;}# try a write lockif ($lck->trywrlock) {...;$l->unlock;}
Overview
This module implements reader/write locks. A read can be acquired for read by many coroutines in parallel as long as no writer has locked it (shared access). A single write lock can be acquired when no readers exist. RWLocks basically allow many concurrent readers (without writers) OR a single writer (but no readers).
You don't have to load "Coro::RWLock" manually, it will be loaded automatically when you "use Coro" and call the "new" constructor.
$l = new Coro::RWLock;
|
Create a new reader/writer lock. |
|---|---|
$l->rdlock
|
Acquire a read lock. |
$l->tryrdlock
|
Try to acquire a read lock. |
$l->wrlock
|
Acquire a write lock. |
$l->trywrlock
|
Try to acquire a write lock. |
$l->unlock
|
Give up a previous |
Author/support/contact
Marc A. Lehmann <[email protected]>http://software.schmorp.de/pkg/Coro.html
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 7 times.