lockAttempts to get a lock on a Pinto repository. If the repository is already locked, we will attempt to contact the current lock holder and make sure they are really alive. If not, then we will steal the lock. If they are, then we patiently wait until we timeout, which is about 60 seconds.
unlockReleases the lock on the Pinto repository so that other processes can get to work.
In many situations, a Pinto repository is a shared resource. At any given moment, multiple processes may be trying to add distributions, remove packages, or pull files from a mirror. To keep things working properly, we can only let one process fiddle with the repository at a time. This module manages a lock file for that purpose.
Supposedly, this does work on NFS. But it cannot steal the lock from a dead process if that process was not running on the same host.
AUTHORJeffrey Ryan Thalhammer <[email protected]>
COPYRIGHT AND LICENSEThis software is copyright (c) 2013 by Jeffrey Ryan Thalhammer.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.