#epoch #reclamation #concurrent #lock-free

debra

distributed epoch-based reclamation

1 unstable release

✓ Uses Rust 2018 edition

0.0.0 Jul 23, 2019

#5 in #epoch

MIT/Apache

3KB

THIS CRATE IS WORK IN PROGRESS

Debra

Distributed epoch-based memory reclamation

Build Status Latest version Documentation License Rust 1.36+

Many concurrent lock-free data structures require an additional minimal (also lock-free) garbage collector, which determines, when a removed value can be safely de-allocated. This can not be determined statically, since many threads could potentially still access previously created references to the removed value. This crate provides a simple and (mostly) safe interface for interacting with the DEBRA [1] memory reclamation scheme.

[1] Trevor Brown, "Reclaiming memory for lock-free data structures: There has to be a better way", in ACM, 2015

Usage

Add this to your Cargo.toml

[dependencies]
debra = "0.1"

Minimum Supported Rust Version (MSRV)

The minimum supported Rust version for this crate is 1.36.0.

Comparison with crossbeam-epoch

...TODO...

Examples

See tests/treiber.rs for an implementation of Treiber's stack using debra for memory reclamation.

Features

...TODO... (bag-size-1 through bag-size-512)

License

Debra is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

No runtime deps