Thread::RWLock - rwlock implementation for perl threads
use Thread::RWLock; my $rwlock = new Thread::RWLock; # Reader $rwlock->down_read; $rwlock->up_read; # Writer $rwlock->down_write; $rwlock->up_write;
RWLocks provide a mechanism to regulate access to resources. Multiple concurrent reader may hold the rwlock at the same time, while a writer holds the lock exclusively.
New reader threads are blocked if any writer are currently waiting to obtain the lock. The read lock gets through after all write lock requests have completed.
This RWLock implementation also takes into account that one thread may obtain multiple readlocks at the same time and prevents deadlocking in this case.
new creates a new rwlock. The new rwlock is unlocked.
new
The down_read method obtains a read lock. If the lock is currantly held by a writer or writer are waiting for the lock, down_read blocks until the lock is available.
down_read
Releases a read lock previously obtained via down_read.
Obtains a write lock from the rwlock. Write locks are exclusive, so no other reader or writer are allowed until the lock is released. down_write blocks until the lock is available.
down_write
Release a write lock previously obtained via down_write.
the Thread::Semaphore manpage
Andreas Ferber <aferber@cpan.org>
To install Thread::RWLock, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Thread::RWLock
CPAN shell
perl -MCPAN -e shell install Thread::RWLock
For more information on module installation, please visit the detailed CPAN module installation guide.