Skip to content

luca3s/simple-left-right

Repository files navigation

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.

About

real-time lockfree data sharing library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages