thread-panic-restart

Crates.iothread-panic-restart
lib.rsthread-panic-restart
version0.1.0
created_at2025-01-10 14:38:57.683152+00
updated_at2025-01-10 14:38:57.683152+00
descriptionA library to automatically restart a thread after a panic. This is useful for ensuring that threads continue running even in the event of an unexpected error. It provides a simple and effective mechanism to catch panics, restart the thread, and optionally log the error for monitoring and debugging purposes.
homepage
repositoryhttps://github.com/ltpp-universe/thread-panic-restart.git
max_upload_size
id1511307
size13,944
尤雨东 (eastspire)

documentation

README

thread-panic-restart

Official Documentation

Api Docs

A library to automatically restart a thread after a panic. This is useful for ensuring that threads continue running even in the event of an unexpected error. It provides a simple and effective mechanism to catch panics, restart the thread, and optionally log the error for monitoring and debugging purposes.

Installation

To use this crate, you can run cmd:

cargo add thread-panic-restart

Use

recoverable_spawn

use recoverable_spawn::*;
let msg: &str = "test";
let handle: JoinHandle<()> = recoverable_spawn(move || {
    panic!("{}", msg);
});
let _ = handle.join();
let handle: JoinHandle<()> = recoverable_spawn_with_error_handle(
    move || {
        panic!("{}", msg);
    },
    |err| {
        println!("handle error => {}", err);
    },
);
let _ = handle.join();

recoverable_spawn_with_error_handle

use recoverable_spawn::*;
let msg: &str = "test";
let handle: JoinHandle<()> = recoverable_spawn_with_error_handle(
    move || {
        panic!("{}", msg);
    },
    |err| {
        println!("handle error => {}", err);
    },
);
let _ = handle.join();

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.

Commit count: 0

cargo fmt