Basic inter-process locks
The zc.lockfile package provides a basic portable implementation of interprocess locks using lock files. The purpose if not specifically to lock files, but to simply provide locks with an implementation based on file-locking primitives. Of course, these locks could be used to mediate access to other files. For example, the ZODB file storage implementation uses file locks to mediate access to file-storage database files. The database files and lock file files are separate files.
Detailed Documentation
Lock file support
The ZODB lock_file module provides support for creating file system locks. These are locks that are implemented with lock files and OS-provided locking facilities. To create a lock, instantiate a LockFile object with a file name:
>>> import zc.lockfile
>>> lock = zc.lockfile.LockFile('lock')
If we try to lock the same name, we’ll get a lock error:
>>> import zope.testing.loggingsupport >>> handler = zope.testing.loggingsupport.InstalledHandler('zc.lockfile') >>> try: ... zc.lockfile.LockFile('lock') ... except zc.lockfile.LockError: ... print "Can't lock file" Can't lock file>>> for record in handler.records: ... print record.levelname, record.getMessage() ERROR Error locking file lock; pid=UNKNOWN
To release the lock, use it’s close method:
>>> lock.close()
The lock file is not removed. It is left behind:
>>> import os
>>> os.path.exists('lock')
True
Of course, now that we’ve released the lock, we can created it again:
>>> lock = zc.lockfile.LockFile('lock')
>>> lock.close()
Change History
1.0.0 (2008-10-18)
Fixed a small bug in error logging.
1.0.0b1 (2007-07-18)
Initial release
Download
Metadata
Release files for zc.lockfile 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zc.lockfile-1.0.0.tar.gz | 4.0 kB | Details |
Release files / zc.lockfile-1.0.0.tar.gz
| Download URL | zc.lockfile-1.0.0.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f170e46eff20ae6c81cad5465f26702f3d3435e0511fb7983cd61a6ed84d5c0
|
|
BLAKE2b-256 checksum How to use checksums |
fecf7e0d2764a100f3ca26ad348039593f2c699a9299c4474f84484055ac0b11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |