Usage¶
flockcontext provide two context manager for fcntl.flock.
Flock
locks an opened file while FlockOpen
does the same job but opens
the file for you.
FlockOpen exemples¶
Exclusive blocking lock:: python
from flockcontext import FlockOpen
- with FlockOpen(‘/tmp/my.lock’, ‘w’) as lock:
- lock.fd.write(‘Lockedn’)
Exclusive non-blocking lock:: python
from flockcontext import FlockOpen
- try:
- with FlockOpen(‘/tmp/my.lock’, ‘w’, blocking=False) as lock:
- lock.fd.write(‘Lockedn’)
- except IOError as e:
- print(‘Can not acquire lock’)
Shared blocking lock:: python
from flockcontext import Flock
- with FlockOpen(‘/tmp/my.lock’, ‘w’, exclusive=False) as lock:
- lock.fd.write(‘Lockedn’)
Acquire and release within context:: python
from flockcontext import FlockOpen
- with FlockOpen(‘/tmp/my.lock’, ‘w’) as lock:
print(‘Lock acquired’) lock.fd.write(‘Lockedn’)
lock.release() print(‘Lock released’)
lock.acquire() print(‘Lock acquired’) lock.fd.write(‘Lockedn’)
Flock exemples¶
Blocking lock:: python
from flockcontext import Flock
- with open(‘/tmp/my.lock’, ‘w’) as fd:
- with Flock(fd):
- fd.write(‘Lockedn’)
Non blocking lock:: python
from flockcontext import Flock
- with open(‘/tmp/my.lock’, ‘w’) as fd:
- try:
- with Flock(fd, blocking=False):
- fd.write(‘Lockedn’)
- except IOError as e:
- print(‘Can not acquire lock’)
Shared lock:: python
from flockcontext import Flock
- with open(‘/tmp/my.lock’, ‘w’) as fd:
- with Flock(fd, exclusive=False):
- fd.write(‘Lockedn’)
Acquire and release within context:: python
from flockcontext import Flock
- with open(‘/tmp/my.lock’, ‘w’) as fd:
- with Flock(fd) as lock:
print(‘Lock acquired’) fd.write(‘Lockedn’)
lock.release() print(‘Lock released’)
lock.acquire() print(‘Lock acquired’) fd.write(‘Lockedn’)