bagpipe

Crates.iobagpipe
lib.rsbagpipe
version0.1.0
sourcesrc
created_at2017-09-03 01:21:59.604786
updated_at2017-09-03 01:21:59.604786
descriptionA concurrent bag datastructure.
homepage
repositoryhttps://github.com/ezrosent/allocators-rs/tree/master/bagpipe
max_upload_size
id30332
size85,402
Joshua Liebow-Feeser (joshlf)

documentation

https://docs.rs/bagpipe

README

Bagpipe

A Bagpipe is an implementation of a concurrent pool data-structure. It is built on top of an implementation of a concurrent queue or stack data-structure. It shards requests for pushing and popping objects among a small set of queues or stacks, with load balancing performed in a manner that is low in coordination among threads. Contention is automatically managed by unrolling tight loops within the underlying queues and allowing threads to attempt pushing on another queue if a CAS failure occurs.

Other Features

This repo also includes implementations of concurrent queues such as the FAAArrayQueue and the YangCrummeyQueue. These are linearizable non-blocking multi-producer multi-consumer queues that may be of independent interest, as they scale better than the queues present in the crossbeam library (to my knowledge).

Commit count: 0

cargo fmt