crossbeam
crossbeam copied to clipboard
Tools for concurrent programming in Rust
@stjepang [said](https://github.com/crossbeam-rs/crossbeam/pull/359#issuecomment-485958500): > Just so we don't forget, in all the other places where we have atomic timestamps, we should use `AtomicU64` (I believe we can't use wide sequences like...
Let's say I have a code like this: ```rust thread::scope(|scope| { scope.thread(|| for item in long_vector { do_stuff(item); }); scope.thread(|| for item in another_long_vector { do_stuff(item); }); }); ``` Now,...
One way to have a saner queue size for any kind of queue is to have one that is bounded by time to process the items, not by entries. Queues...
It is useful to know when crossbeam::deque::Worker::push adds the first task to an empty deque as this can be used to facilitate simple batching by triggering tokio::task::spawn and work stealing...
Some early discussion and rough benchmarks can be found in https://github.com/crossbeam-rs/crossbeam/issues/398. The imprecision of the block cache operations is intentional and seems to be a key part of making this...
Run the following command on crossbeam-skiplist: ```sh RUSTFLAGS='-Z sanitizer=address' \ cargo test --release --target x86_64-unknown-linux-gnu --test base ``` AddressSanitizer reports memory leak: output ```text + RUSTFLAGS='-Z sanitizer=address' + cargo test...
It seems to help to catch a bug such as https://github.com/crossbeam-rs/crossbeam/pull/726. Originally suggested by @kmaork.
In the example code https://docs.rs/crossbeam-channel/0.5.1/crossbeam_channel/struct.Select.html#examples-4 there's a comment saying "Both operations are initially ready, so a random one will be executed.", although the asserts paint a different picture, as only...
Confirming my understanding of the code: there is no way to enforce a max capacity size on the "buffer that holds tasks in a worker queue" which means it would...
`AtomicCell::compare_exchange` will, if I understand the code correctly, use `AtomucU*::compare_exchange_weak` if `T` has the right size. But this means that e.g. for `(u8, u16)`, which has size 4, it will...