16 releases (9 breaking)
0.10.2 | Jan 26, 2023 |
---|---|
0.10.1 | Jan 15, 2022 |
0.10.0 | Jun 14, 2021 |
0.9.0 | May 4, 2020 |
0.8.4 | Feb 28, 2020 |
#154 in Encoding
1,535 downloads per month
Used in 3 crates
79KB
1.5K
SLoC
procspawn
This crate provides the ability to spawn processes with a function similar
to thread::spawn
. Instead of closures it passes serde
serializable objects. The return value from the spawned closure also must be
serializable and can then be retrieved from the returned join handle.
If the spawned functiom causes a panic it will also be serialized across the process boundaries.
Example
Step 1: invoke procspawn::init
at a point early in your program (somewhere at
the beginning of the main function). Whatever happens before that point also
happens in your spawned functions.
procspawn::init();
Step 2: now you can start spawning functions:
let data = vec![1, 2, 3, 4];
let handle = procspawn::spawn(data, |data| {
println!("Received data {:?}", &data);
data.into_iter().sum::<i64>()
});
let result = handle.join().unwrap();
License and Links
- Documentation
- Issue Tracker
- Examples
- License: Apache-2.0
Dependencies
~6–12MB
~235K SLoC