IPC::ConcurrencyLimit::Lock::Flock - flock() based locking
use IPC::ConcurrencyLimit;
This locking strategy implements flock() based concurrency control. Requires that your system has a sane flock() implementation as well as a non-blocking flock() mode.
flock()
Inherits from IPC::LimitConcurrency::Lock.
Take care not to attempt to use this on an NFS share or any other file system that does not implement atomic flock()!
Given a hash ref with options, attempts to obtain a lock in the pool. On success, returns the lock object, otherwise undef.
Required options:
path
The directory that will hold the lock files. Created if it does not exist. It is suggested not to use a directory that may hold other data.
max_procs
The maximum no. of locks (and thus usually processes) to allow at one time.
Other options:
lock_mode
Defaults to exclusive locks.
exclusive
In particular circumstance, you might want to set this to shared. This subverts the way the normal concurrency limit works, but allows entirely different use cases.
shared
Returns the full path and name of the lock file.
Returns the directory in which the lock files resides.
Steffen Mueller, smueller@cpan.org
smueller@cpan.org
Yves Orton
This module was originally developed for booking.com. With approval from booking.com, this module was generalized and put on CPAN, for which the authors would like to express their gratitude.
(C) 2011 Steffen Mueller. All rights reserved. This code is available under the same license as Perl version 5.8.1 or higher. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
To install IPC::ConcurrencyLimit, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IPC::ConcurrencyLimit
CPAN shell
perl -MCPAN -e shell install IPC::ConcurrencyLimit
For more information on module installation, please visit the detailed CPAN module installation guide.