Crates.io | orx-pinned-concurrent-col |
lib.rs | orx-pinned-concurrent-col |
version | 2.8.0 |
source | src |
created_at | 2024-04-12 03:10:26.970946 |
updated_at | 2024-09-20 13:00:03.744384 |
description | A core data structure with a focus to enable high performance, possibly lock-free, concurrent collections using a PinnedVec as the underlying storage. |
homepage | |
repository | https://github.com/orxfun/orx-pinned-concurrent-col/ |
max_upload_size | |
id | 1205923 |
size | 75,607 |
A core data structure with a focus to enable high performance, possibly lock-free, concurrent collections using a PinnedVec
as the underlying storage.
Pinned vectors grow while keeping the already pushed elements pinned to their memory locations. This allows the following concurrency model.
PinnedConcurrentCol
itself does not provide guarantees for race-free writing; and hence, the write methods are marked unsafe
.As clear from the properties, pinned concurrent collection aims to achieve high performance. It exposes the useful methods that can be used differently for different requirements and marks the methods which can lead to race conditions as unsafe
by stating the underlying reasons. This enables building safe wrappers such as ConcurrentBag
, ConcurrentOrderedBag
or ConcurrentVec
.
Contributions are welcome! If you notice an error, have a question or think something could be improved, please open an issue or create a PR.
This library is licensed under MIT license. See LICENSE for details.