Simpler Version of left-right, which only allows one reader. Also allows real-time safe read operations and is designed for this use-case.
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.
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.
This project is hosted on tangled, github and codeberg. You can create issues and PRs on any platform you like.