# `Hyaline-SMR`
This crate provides garbage collection using [hyaline](https://arxiv.org/pdf/1905.07903.pdf) algorithm for building concurrent data structures.
When a thread removes an object from a concurrent data structure, other threads
may be still using pointers to it at the same time, so it cannot be destroyed
immediately. Hyaline based garbage collection is an alternative to epoch based garabge collection
to defer the destruction of these shared objects until no pointers to them can exist.
see [Snapshot-Free, Transparent, and Robust Memory
Reclamation for Lock-Free Data Structures](https://arxiv.org/pdf/1905.07903.pdf) for further details.
This crate requires nightly.
[Documentation](https://docs.rs/hyaline_smr)
## Usage
Add this to your `Cargo.toml`:
```toml
[dependencies]
hyaline_smr = "0.1"
```
## Example
Refer [documentation](https://docs.rs/hyaline_smr)
## Credits
[Snapshot-Free, Transparent, and Robust Memory
Reclamation for Lock-Free Data Structures](https://arxiv.org/pdf/1905.07903.pdf)
## License
Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.