Crate orphan_crippler[−][src]
Expand description
This crate provides an abstraction for outsourcing a piece of work to another thread. This is a common
pattern in not only async programs, but OS-specific programs where it is expected that a certain piece of
work is done on a certain thread. To accomplish this, the crate provides a Two
, short for “Two Way
Oneshot” (not a recursive acronym). It is implemented as a sender and a receiver, similar to other channels
in the Rust ecosystem. The primary difference is that the sender comes bundled with a data type of your
choice, and that the sender and receiver are both consumed upon data transmission.
Example
Creates a thread that processes the work of squaring a number.
use orphan_crippler::two; use std::thread; let (mut sender, receiver) = two::<i32, i32>(5); thread::spawn(move || { let input = sender.input().unwrap(); let result = input * input; sender.send::<i32>(result); }); assert_eq!(receiver.recv(), 25);
Features
If the parking_lot
feature is enabled, this crate uses mutexes from the parking_lot
crate internally,
rather than std::sync
mutexes. This is recommended if you are using parking_lot
mutexes elsewhere in your
application.
Structs
Receiver | The receiver for the two-way oneshot channel. It is consumed upon receiving its data. |
Sender | The sender for the two-way oneshot channel. It is consumed upon sending its data. |
Functions
complete | Creates a receiver that automatically resolves. |
complete_boxed | Equivalent to |
two | Creates a sender and a receiver for the two-way oneshot ( |