```{index} single: Coro::RWLock ``` # Coro::RWLock reader/write locks ## SYNOPSIS ```perl 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 readlock if ($lck->tryrdlock) { ...; $l->unlock; } ## try a write lock if ($lck->trywrlock) { ...; $l->unlock; } ``` ## DESCRIPTION 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 `rdlock` or `wrlock`. ## AUTHOR/SUPPORT/CONTACT ```perl Marc A. Lehmann http://software.schmorp.de/pkg/Coro.html ```