Realtime safe, waitfree, concurrency library
Rust 100.0%
29 1 0

Clone this repository

https://tangled.org/inkreas.ing/simple-left-right
git@tangled.org:inkreas.ing/simple-left-right

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Simple left right#

Simpler Version of left-right, which only allows one reader. Also allows real-time safe read operations and is designed for this use-case.

Testing#

This library is tested both with miri and cargo-mutants. Some tests are disabled for miri as they leak memory or block on unlucky thread scheduling. They can be run by ignoring leaks or choosing a threading seed that doesn't lock itself.

cargo-mutants currently has one mutation that isn't caught by the tests, because it changes a bitwise operation to one that has the same result on the possible inputs. It also produces a couple of timeouts, as the write locking spins forever.

PRs should keep this state as much as possible.

std::mem::forget#

Forgetting a Read/Write guard could lead to UB, so i detect that and panic if it happens. In order to make the detection cheap it doesn't differentiate between cases where a forget would lead to UB and cases where it doesn't. Just don't forget the guards and it won't panic.

Git#

This project is hosted on tangled, github and codeberg. You can create issues and PRs on any platform you like.