498bdca99c35a2009c6321d593352da756421b57
Offset locks allow for lock inside a single file using byte offsets, this avoids having to create hundreds of lock files for each use case, and instead allows for an application to be smarter, and shard locks from a single file for its use-cases (assuming the file can pick a large enough file with enough offsets to satisfy its needs). This makes it much easier to cleanup lock files, track them and know when to delete them (because deleting per-lock lock files is hard to do when an application is always online, because knowing when to delete a lock file is a non-trivial problem when an application has no interface to tell which locks are alive or dead and which are safe to delete).
Fasteners
Overview
A python package that provides useful locks.
It includes the following.
Locking decorator
- Helpful
lockeddecorator (that acquires instance objects lock(s) and acquires on method entry and releases on method exit).
Reader-writer locks
- Multiple readers (at the same time).
- Single writers (blocking any readers).
- Helpful
read_lockedandwrite_lockeddecorators.
Inter-process locks
- Single writer using file based locking (these automatically release
on process exit, even if
__release__or__exit__is never called). - Helpful
interprocess_lockeddecorator.
Generic helpers
- A
try_lockhelper context manager that will attempt to acquire a given lock and provide back whether the attempt passed or failed (if it passes, then further code in the context manager will be ran with the lock acquired).
Description
Languages
Python
100%
