npnc

Crates.ionpnc
lib.rsnpnc
version0.2.1
sourcesrc
created_at2017-03-25 02:21:42.333637
updated_at2018-08-15 01:57:34.727932
descriptionLock-free queues.
homepage
repositoryhttps://github.com/KyleMayes/npnc
max_upload_size
id9143
size58,327
Kyle Mayes (KyleMayes)

documentation

https://docs.rs/npnc

README

npnc

crates.io docs.rs Travis CI

Lock-free queues.

Supported on the stable, beta, and nightly Rust channels.

Released under the Apache License 2.0.

Features

  • Bounded lock-free SPSC queue
  • Bounded lock-free MPMC queue
  • Unbounded lock-free SPSC queue
  • Unbounded lock-free MPMC queue

Examples

Bounded SPSC

extern crate npnc;

use std::thread;

use npnc::bounded::spsc;

fn main() {
    let (producer, consumer) = spsc::channel(64);

    // Producer
    let b = thread::spawn(move || {
        for index in 0..32 {
            producer.produce(index).unwrap();
        }
    });

    // Consumer
    let a = thread::spawn(move || {
        loop {
            if let Ok(item) = consumer.consume() {
                println!("{}", item);
                if item == 31 {
                    break;
                }
            }
        }
    });

    a.join().unwrap();
    b.join().unwrap();
}
Commit count: 33

cargo fmt