atomic-queue
A thread-safe, lock-free queue implementation based on the LMAX Disruptor, with crititcal parts written in C++.
This queue supports multiple producers and consumers. Producers are responsible for managing their own threads, while consumer threads are managed by the queue and are required to implement the EventHandler interface.
Example
Initialise an atomic queue instance with the buffer capacity and a wait strategy. The buffer capacity must be a power of 2 integer.
from atomicqueue import AtomicQueue, BUSY_SPIN_WAIT_STRATEGY
queue = AtomicQueue(256, wait_strategy=BUSY_SPIN_WAIT_STRATEGY)
Define how the events will be consumed. In the example below event handler "h_one" and "h_two" can overrun each other but can not overrun the publishers, while event handler "h_three" can only consume events after "h_one" and "h_two" have finished consuming them.
queue.handle_events_with(NoOpEventHandler("h_one"), NoOpEventHandler("h_two")).then(NoOpEventHandler("h_three"))
Once configured the queue can be started with the following command.
queue.start()
To publish to the queue, simply call publish_event on the queue.
queue.publish_event(event)
Stop the queue by calling stop().
queue.stop()
Metadata
Release files for atomic-queue 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| atomic-queue-1.0.1.tar.gz | 5.8 kB | Without provenance | Details for atomic-queue-1.0.1.tar.gz |
Release files / atomic-queue-1.0.1.tar.gz
| Download URL | atomic-queue-1.0.1.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a0b9c84e3cea3f67b2ad42f86374766b12e1c0c1be8196d5a68dcec15befece
|
|
BLAKE2b-256 checksum How to use checksums |
0191ddd500fe9bcf8a6189899fe99f813985f509d48fbb138a691ee1b0a0dc6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Security for atomic-queue 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.