hzrd

Crates.iohzrd
lib.rshzrd
version0.1.0
sourcesrc
created_at2023-09-28 06:06:30.201943
updated_at2024-11-16 05:13:56.974014
descriptionShared mutability containers based on hazard pointers
homepage
repositoryhttps://github.com/skogseth/hzrd/
max_upload_size
id985586
size86,334
Herman Skogseth (skogseth)

documentation

README

hzrd

Crate API

Provides shared, mutable state by utilizing hazard pointers.

Usage

The core API of this crate is the HzrdCell, which provides an API reminiscent to that of the standard library's Cell-type. However, HzrdCell allows shared mutation across multiple threads.

use hzrd::HzrdCell;

let cell = HzrdCell::new(false);

std::thread::scope(|s| {
    s.spawn(|| {
        // Loop until the value is true ...
        while !cell.get() {
            std::hint::spin_loop();
        }

        // ... and then set it back to false!
        cell.set(false);
    });

    s.spawn(|| {
        // Set the value to true
        cell.set(true);

        // And then read the value!
        // This might print either `true` or `false`
        println!("{}", cell.get()); 
    });
});

License

This project is licensed under the MIT license.

Commit count: 76

cargo fmt