Éric Larivière <[email protected]> added the comment:
Hi,
Sorry to wake up a 10 years old discussion
But I think that you might be interested in the following Python package that I
created and maintain since few years now:
https://pypi.org/project/readerwriterlock/
1- It implements the three type of reader writer lock:
- Read Priority
- Write Priority
- Fair Priority
2- It matches the interface of python threading.Lock
More specifically:
def acquire(self, blocking: bool = True, timeout: float = -1) -> bool:
def release(self) -> None:
As you can see it supports the 'blocking' and the 'timeout' parameters) and it
uses the same methods name
3- It supports context manager (__enter__, __exit__)
4- It is also possible (currently not well documented) to provide a lock
factory when initializing a new reader writer lock to specify the internal lock
mechanism to use (by default it uses threading.Lock).
def __init__(self, lock_factory: Callable[[], Lockable] = lambda:
threading.Lock()) -> None:
This hidden feature allows to offer the possibility to implement your own lock
mechanism (using port, file on disk, etc, ...) and the reader writer lock will
internally use it (This open the door for multiprocessing locking)
----------
nosy: +elarivie
versions: -Python 3.4
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue8800>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com