Skip to content

elijahr/lockfreequeues

Repository files navigation

build

lockfreequeues

Lock-free queues for Nim, implemented as ring buffers.

Three implementations are provided:

  • Sipsic is a single-producer, single-consumer bounded queue. Pushing and popping are wait-free.
  • Mupsic is a multi-producer, single-consumer bounded queue. Popping is wait-free.
  • Mupmuc is a multi-producer, multi-consumer bounded queue.

API documentation: https://elijahr.github.io/lockfreequeues

Installation

nimble install lockfreequeues

Examples

Examples are located in the examples directory and can be compiled and run with:

nimble examples

Reference

Many thanks to Mamy Ratsimbazafy for reviewing the initial release and offering suggestions.

Contributing

  • Pull requests and feature requests are welcome!
  • Please file any issues you encounter.
  • For pull requests, please see the contribution guidelines.

Running tests

Tests can be run locally with nimble test.

CI runs the test suite for both C and C++ targets on:

  • Linux x86_64 and aarch64
  • macOS x86_64

The test suite is also run with LLVM thread sanitization to check for data races.

About

Lock-free queue implementations for Nim.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy