36 releases (stable)
Uses new Rust 2024
new 3.7.1 | Apr 6, 2025 |
---|---|
3.5.4 | Mar 30, 2025 |
2.0.0 | Jan 11, 2025 |
1.0.0 | Jan 10, 2025 |
0.8.0 | Jan 10, 2025 |
#2031 in Network programming
2,215 downloads per month
Used in 6 crates
(4 directly)
24KB
272 lines
recoverable-spawn
A thread that supports automatic recovery from panics, allowing threads to restart after a panic. Useful for resilient and fault-tolerant concurrency in network and web programming.
Installation
To use this crate, you can run cmd:
cargo add recoverable-spawn
Use
recoverable_spawn
use recoverable_spawn::*;
let msg: &str = "test";
let res: SyncSpawnResult = recoverable_spawn(move || {
panic!("{}", msg);
});
let res: SyncSpawnResult = recoverable_spawn_with_error_handle(
move || {
panic!("{}", msg);
},
|err| {
println!("handle error => {}", err);
},
);
recoverable_spawn_with_error_handle
use recoverable_spawn::*;
let msg: &str = "test";
let res: SyncSpawnResult = recoverable_spawn_with_error_handle(
move || {
panic!("{}", msg);
},
|err| {
println!("handle error => {}", err);
},
);
async_recoverable_spawn
use recoverable_spawn::*;
let msg: &str = "test";
let res: AsyncSpawnResult = async_recoverable_spawn(move || async move {
panic!("{}", msg);
});
async_recoverable_spawn_catch
use recoverable_spawn::*;
let msg: &str = "test";
let res: AsyncSpawnResult = async_recoverable_spawn_catch(
move || async move {
panic!("{}", msg);
},
move |err| async move {
println!("handle error => {}", err);
},
);
async_recoverable_spawn_catch_finally
use recoverable_spawn::*;
let msg: &str = "test";
let res: AsyncSpawnResult = async_recoverable_spawn_catch_finally(
move || async move {
panic!("{}", msg);
},
move |err| async move {
println!("handle error => {}", err);
panic!("{}", err);
},
move || async move {
println!("finally");
},
);
License
This project is licensed under the MIT License. See the LICENSE file for details.
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
Contact
For any inquiries, please reach out to the author at ltpp-universe root@ltpp.vip.
Dependencies
~2.4–8MB
~58K SLoC