Realtime safe, waitfree, concurrency library

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.