Improves fcntl.flock usage
Project description
Improves fcntl.flock usage.
flock is a Unix command for file locking, the mecanism that controls access restrictions of files.
Usage
Exclusive blocking lock:
from flockcontext import FlockOpen with FlockOpen('/tmp/my.lock', 'w') as lock: lock.fd.write('Locked\n')
Exclusive blocking lock with 1 second timeout:
from flockcontext import FlockOpen with FlockOpen('/tmp/my.lock', 'w', timeout=1) as lock: lock.fd.write('Locked\n')
Exclusive non-blocking lock:
from flockcontext import FlockOpen try: with FlockOpen('/tmp/my.lock', 'w', blocking=False) as lock: lock.fd.write('Locked\n') except IOError as e: print('Can not acquire lock')
Shared blocking lock:
from flockcontext import Flock with FlockOpen('/tmp/my.lock', 'w', exclusive=False) as lock: lock.fd.write('Locked\n')
Acquire and release within context:
from flockcontext import FlockOpen with FlockOpen('/tmp/my.lock', 'w') as lock: print('Lock acquired') lock.fd.write('Locked\n') lock.release() print('Lock released') lock.acquire() print('Lock acquired') lock.fd.write('Locked\n')
Locking already opened file:
from flockcontext import Flock with open('/tmp/my.lock', 'w') as fd: with Flock(fd): fd.write('Locked\n')
License
Free software: BSD license
History
0.4.0 (2019-07-03)
Use docker for mutiple Python version testing from 2.7 to 3.7
Add proper BSD licence file
Add timeout for blocking lock
Upgrade development status to Production/Stable
0.3.1 (2015-08-24)
Add syntax highlighting for code exemples
Add Flock manager exemple in README
0.3.0 (2015-08-21)
Add FlockOpen context manager.
0.2.0 (2015-08-20)
Add Flock relase and acquire capability withing context.
0.1.0 (2015-08-19)
Add Flock context manager.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for flockcontext-0.4.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1074a700cf6a3f18f95af3057acb757668bea31b539923a97c716a14ea197e1 |
|
MD5 | 0848cdd24d210b32934d14083d3b7fc3 |
|
BLAKE2b-256 | eb33b5efd1199a729131f5569be6c774e1520b80857c937d99f813ff38d0b861 |