The format is based on Keep a Changelog
- Add
.acquire_read_lock
,.release_read_lock
,.acquire_write_lock
, and.release_write_lock
methods to the inter threadReaderWriterLock
as was promised in the README. - Remove support for python 3.7 and pypy 3.7. It should still work, but is no longer tested.
- Add support for pypy 3.10 and python 3.11
- Reshuffle the process lock code and properly document it.
- Revamp the docs and switch from sphinx to mkdocs
- Remove difficult to use tread lock features from docs
- Bring back support for eventlet
spawn_n
- Remove support for python3.6. It should still work, but is no longer tested.
- Allow writer to become a reader in thread ReaderWriter lock
- Remove unnecessary setuptools pin
- Switch to the modern python package build infrastructure
- Remove support for python 3.5 and earlier, including 2.7
- Add support for python 3.9 and 3.10
- Fix a conflict with django lock
- Add
__version__
and__all__
attributes - Fix a failure to parse README as utf-8
- Move from nosetest to pytest and cleanup testing infrastructure
- Fix a failure to parse README as utf-8 on python2
- Fix a failure to parse README as utf-8
- Move from travis and appveyor to github actions
- Add interprocess reader writer lock
- Improve README
- remove unused eventlet import
- use stdlib monotonic instead of external for python >= 3.4
- Add testing for additional python versions
- Remove python 2.6 support
- Remove eventlet dependency and use threading.current_thread instead
- Allow providing a custom exception logger to 'locked' decorator
- Allow providing a custom logger to process lock class
- Fix issue #12
- Fix 'ensure_tree' check on freebsd
- Use a tiny retry util helper class for performing process locking retries.
- Directly use monotonic.monotonic.
- Use BLATHER level for previously INFO/DEBUG statements.
- Add LICENSE in generated source tarballs
- Add a version.py file that can be used to extract the current version.
- Allow providing a non-standard (eventlet or other condition class) to the r/w lock for cases where it is useful to do so.
- Instead of having the r/w lock take a find eventlet keyword argument, allow for it to be provided a function that will be later called to get the current thread. This allows for the current hack to be easily removed by users (if they so desire).
- Add fastener logo (from openclipart).
- Ensure r/w writer -> reader -> writer lock acquisition.
- Attempt to use the monotonic pypi module if its installed for monotonically increasing time on python versions where this is not built-in.
- Add helpful
locked
decorator that can lock a method using a found attribute (a lock object or list of lock objects) in the instance the method is attached to. - Expose top level
try_lock
function.
- Allow the sleep function to be provided (so that various alternatives other than time.sleep can be used), ie eventlet.sleep (or other).
- Remove dependency on oslo.utils (replace with small utility code that achieves the same effect).
- Make it possible to provide an acquisition timeout to the interprocess lock (which when acquisition can not complete in the desired time will return false).
- Have the interprocess lock acquire take a blocking keyword argument (defaulting to true) that can avoid blocking trying to acquire the lock
- Renamed from 'shared_lock' to 'fasteners'
- Fix delay not working as expected
- Add a interprocess lock
- Add travis yaml file
- Initial commit/import