Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

atomic-queue

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

atomic-queue

A lock-free, thread-safe queue using the C++ atomic library to synchronise memory access.

  • 1.0.1
  • PyPI
  • Socket score

Maintainers
1

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()

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc