matthieu-m
matthieu-m
Yes, I tried too and it's definitely non-trivial :) You can see my attempts at https://github.com/matthieu-m/ghost-collections, you'll see there are 2 linked-lists: 1. [`linked_list.rs`](https://github.com/matthieu-m/ghost-collections/blob/master/src/linked_list.rs) which works with 1/2 pointers. 2....
Well done! GATs really are awesome. I realized there's another fundamental difference between the inline storage and the heap storage. With the inline storage, it's known at compile-time whether the...
I would propose using a variant of a Jagged Array™ as the backing structure of a concurrent hash-table. The structure is pretty simple: struct JaggedArray { data: [AtomicPtr; 32], }...
> In case people are not aware of quiescent state based reclamation (QSBR), here is a concurrent map that was implemented in C++ based on QSBR and it outperforms libcuckoo:...
@stjepang By the way, while lock-free/wait-free are good, they say nothing about contention. For an extreme example, imagine 96 threads (2x24 cores, multithreaded) all concurrently trying to clone the same...
Thanks for the libcuckoo code. It seems pretty lock-heavy (using spin-locks, but still). In Rust, the absence of copy-constructor should allow optimistic reads which avoids locking. > I'm thinking we...
I was considering the cost of a reader being the last owner of an `Arc`, and having to bear the cost destroying `T` and freeing the underlying memory; an operation...
@Shnatsel : The idea is ingenious, however following a chain of pointers can lead to poor cache behavior, and repeatedly hashing has adverse performance (or did I not understand the...
A very simplistic Concurrent Hash Map based on Abseil's Swiss Map: https://greg7mdp.github.io/parallel-hashmap/ => simply using an array of Abseil's maps, each with a lock.
I do like the idea of field projection in general, but I am not at all convinced that making `.` more magical than it already is (`Deref`/`DerefMut`/partial moves, ...) is...