A lock-free, thread-safe sequence counter using the C++ atomic library.
Project description
Atomic Sequence
A lock-free, thread-safe sequence/counter which uses the C++ atomic library under the hood. This gives a ~5-10x speed up compared to threading locks.
Install
pip install atomic-sequence
Usage
from atomicsequence import Sequence
sequence = AtomicSequence(0)
# set current sequence value to 1
sequence.set(1)
# get current value
value = sequence.get()
# increment the sequence value and get the new value
value = sequence.increment_and_get(1)
# increment the sequence value and get the value directly preceding the operation
value = sequence.get_and_increment(1)
Testing
To run unittests and benchmarks use tox:
pipenv install --dev
pipenv run tox
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
atomic-sequence-0.0.9.tar.gz
(304.9 kB
view details)
File details
Details for the file atomic-sequence-0.0.9.tar.gz
.
File metadata
- Download URL: atomic-sequence-0.0.9.tar.gz
- Upload date:
- Size: 304.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.6.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb8cd33d4dfcb7decfafc1c36e6babbd5c48963ecd41e4a55a97fb17a1bbbe10 |
|
MD5 | 38bcfe40180f54abcab82f47b0877089 |
|
BLAKE2b-256 | be102334abd182a9d343fece1d6a68d5a182b693a3dc3769a554b4ec0e7cf258 |