I'm surprised nobody mentioned the Rust crate left_right[1].
It's also a map that supports multiple readers AND a writer.
It does this by maintaining two maps, one used by the writer and one used by the readers and atomically swap the two when useful, the cool part is that reads are wait-free but the cost is at least double memory usage and slow writes (twice the work).
It's also a map that supports multiple readers AND a writer.
It does this by maintaining two maps, one used by the writer and one used by the readers and atomically swap the two when useful, the cool part is that reads are wait-free but the cost is at least double memory usage and slow writes (twice the work).
[1]: https://docs.rs/left-right/latest/left_right/