zc.lockfile 1.0.0
Basic inter-process locks
Downloads ↓
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.
Contents
-
Detailed Documentation
- Lock file support
-
Change History
- 1.0.0 (2008-10-18)
- 1.0.0b1 (2007-07-18)
- Download
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
File | Type | Py Version | Uploaded on | Size | # downloads |
---|---|---|---|---|---|
zc.lockfile-1.0.0.tar.gz (md5) |
>>> import zc.lockfile >>> lock = zc.lockfile.LockFile('lock')
>>> 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
>>> lock.close()
>>> import os >>> os.path.exists('lock') True
>>> lock = zc.lockfile.LockFile('lock') >>> lock.close()