Skip to main content

Basic inter-process locks

Project description

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:

>>> try:
...     zc.lockfile.LockFile('lock')
... except zc.lockfile.LockError:
...     print "Can't lock"
Can't lock

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()

Download

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zc.lockfile-1.0.0b1.tar.gz (3.6 kB view details)

Uploaded Source

File details

Details for the file zc.lockfile-1.0.0b1.tar.gz.

File metadata

  • Download URL: zc.lockfile-1.0.0b1.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for zc.lockfile-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 5c08a7c651f52c046bf92df27894d60342177b219f86b4c4eb90f7cb9c53d028
MD5 5584c80063f6c69f5a0133ea32b05a9d
BLAKE2b-256 70fa87798cd88d00418cdf43cf94bc126f5c6d1efc2d7cfaed1de7e3099cbff0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page