-
Notifications
You must be signed in to change notification settings - Fork 31
Closed
Labels
Description
Below is a list of OCaml 5 lockfree data structures done by some awesome hackers. These were done either out of curiosity, or due to the needing them for applications. In any case, it would be nice to upstream these structures to lockfree. This would involve writing qcheck or alcotest, and dscheck tests for these structures. (@lyrm @bartoszmodelski feel free to add more details about upstreaming part).
| Data Structure | Link |
|---|---|
| Concurrent Trie | https://github.com/ocaml-bench/sandmark/pull/181/files |
| MPSC Queue | https://github.com/haesbaert/ocaml-mpsc |
| MPMC Unbounded Queue | #35 |
| Lockfree Stack | https://github.com/bartoszmodelski/ebsl/blob/main/datastructures/stack.ml |
| Paradict | https://github.com/ElectreAAS/Paradict |
| Lockfree sets and Maps | https://github.com/art-w/mcavl |
| List | https://github.com/ocaml-multicore/lockfree/blob/old/src/lf_list.ml |
| Bag | https://github.com/ocaml-multicore/lockfree/blob/old/src/lf_bag.ml |
| Containers Lock free Queue | https://github.com/c-cube/ocaml-containers/blob/wip-lfqueue/src/lf_queue/containers_lfqueue.ml#L3-L58 |
| SkipMap | https://github.com/ocaml-multicore/dscheck/blob/skipmap/src/lf_skipmap.ml |