Conversation
|
I think that it's fair to do this given the presence of a Rayon implementation also (although, IMHO, we shouldn't be including these implementations in this crate…) but I also think that regardless of what is done, any primitives needed to make this work should be added to For example, at one point I was contemplating offering an API that directly provided access to the |
|
I talked about this in person with @gendx at EuroRust. The main issue with the current implementation is that it returns an iterator of A mid-level API that just exposes buckets like #613 might work for |
…(de)allocate the hash table on other threads.
|
With Paralight v0.0.10, it's now possible to define parallel iterators where each bucket produces an Some general remarks:
*Internally, the Paralight execution engine will ensure that each bucket index has been passed once and only once to a call to |
Paralight is a lightweight parallelism library tuned for indexed structures such as slices. Given that the internal representation of hashbrown's hash tables is a slice of buckets (that each optionally contain a value), it's a good fit to integrate with (gendx/paralight#5).
This pull request is here to iterate on the design. As the integration needs access to the raw hash table representation, it's done here in the hashbrown crate (similarly to Rayon's integration).