pinned/
lib.rs

1//! Task synchronisation primitives for pinned tasks.
2//!
3//! This crate provides the following task synchronisation mechanisms for `!Send` futures:
4//!
5//! - [`Barrier`]: Ensures multiple tasks to wait until all tasks have reached a point in the
6//! program before continuing execution of all together.
7//! - [`RwLock`]: Provides a mutual exclusion mechanism which allows multiple readers at the same
8//! time, while allowing only one writer at a time.
9//! - [`mpsc`]: A channel that supports sending multiple values from multiple producers to a single
10//! receiver.
11//! - [`oneshot`]: A channel to send one single value from a producer to a receiver.
12
13#![deny(
14    missing_docs,
15    missing_debug_implementations,
16    bare_trait_objects,
17    anonymous_parameters,
18    elided_lifetimes_in_paths
19)]
20
21mod barrier;
22mod cell;
23pub mod mpsc;
24pub mod oneshot;
25mod rwlock;
26mod utils;
27
28pub use barrier::*;
29pub use rwlock::*;