Skip to main content

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


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)

Uploaded Source

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

Hashes for atomic-sequence-0.0.9.tar.gz
Algorithm Hash digest
SHA256 bb8cd33d4dfcb7decfafc1c36e6babbd5c48963ecd41e4a55a97fb17a1bbbe10
MD5 38bcfe40180f54abcab82f47b0877089
BLAKE2b-256 be102334abd182a9d343fece1d6a68d5a182b693a3dc3769a554b4ec0e7cf258

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page