60 lines
1.7 KiB
ReStructuredText
60 lines
1.7 KiB
ReStructuredText
Fasteners
|
|
=========
|
|
|
|
.. image:: https://travis-ci.org/harlowja/fasteners.png?branch=master
|
|
:target: https://travis-ci.org/harlowja/fasteners
|
|
|
|
.. image:: https://ci.appveyor.com/api/projects/status/7d7aku32pimpadiv
|
|
:target: https://ci.appveyor.com/project/JoshuaHarlow/fasteners
|
|
|
|
.. image:: https://readthedocs.org/projects/fasteners/badge/?version=latest
|
|
:target: https://readthedocs.org/projects/fasteners/?badge=latest
|
|
:alt: Documentation Status
|
|
|
|
.. image:: https://img.shields.io/pypi/dm/fasteners.svg
|
|
:target: https://pypi.python.org/pypi/fasteners/
|
|
:alt: Downloads
|
|
|
|
.. image:: https://img.shields.io/pypi/v/fasteners.svg
|
|
:target: https://pypi.python.org/pypi/fasteners/
|
|
:alt: Latest Version
|
|
|
|
Overview
|
|
--------
|
|
|
|
A python `package`_ that provides useful locks.
|
|
|
|
It includes the following.
|
|
|
|
Locking decorator
|
|
*****************
|
|
|
|
* Helpful ``locked`` decorator (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_locked`` and ``write_locked`` decorators.
|
|
|
|
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_locked`` decorator.
|
|
|
|
Generic helpers
|
|
***************
|
|
|
|
* A ``try_lock`` helper 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).
|
|
|
|
.. _package: https://pypi.python.org/pypi/fasteners
|