No description
Find a file
2026-04-21 21:53:33 +00:00
src fixed 2026-02-25 12:23:57 -05:00
.gitignore readme 2026-02-19 10:19:52 -05:00
Cargo.lock futex 2026-02-22 14:05:46 -05:00
Cargo.toml futex 2026-02-22 14:05:46 -05:00
README.md Update README.md 2026-04-21 21:53:19 +00:00

kitchen-sync

Implementing RAII Mellor-Crummey-Scott lock, as well as others. Only implementing for linux atm.

Implementing some concurrency primitives that I find interesting. Based mostly on Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors. These are just using spinning and thread::yield_now()/std::hint::spin_loop() atm, no OS features (eg Futex et al).

Partly learning because I wanted to contribute an optimization based on flat-combining to an open-source LSM tree I use but experienced too many skill issues. Flat-combining is very close to the implementation of the "List based queueing lock" ("MCSLock") described in the 1991 paper.

todo: can we just use stdlibs cross-platform futex wrapper? Futex is used for (basically) everything

        all(target_os = "windows", not(target_vendor = "win7")),
        target_os = "linux",
        target_os = "android",
        target_os = "freebsd",
        target_os = "openbsd",
        target_os = "motor",
        target_os = "dragonfly",
        all(target_family = "wasm", target_feature = "atomics"),
        target_os = "hermit",