## What is this?
It's just a simple terminatable thread implement with *pthread* for rust
## But Why?
Sometimes, I need to terminate a blocked thread. There is no way to
do it with the standard `std::thread` without putting into some `Sync` thing.
## How to use it?
```toml
[dependencies]
terminate-thread = "0.1"
```
### 1. Terminate an infinite loop
```rust
use terminate_thread::Thread;
println!("loop run");
std::thread::sleep(std::time::Duration::from_secs(1));
});
std::thread::sleep(std::time::Duration::from_secs(1));
// Just terminate it
thr.terminate()
```
## Not a good idea!
Terminate a running thread is *ALWAYS A BAD IDEA*!
The better way is to use something like `std::sync::atomic::AtomicBool`,
to give your thread a chance to return.
## Tested Platform
- [x] Linux
- [x] macOS
It should work in any platform support *pthread*,
but the real world is sophisticated to make any promise.
## Issues
- [x] Terminate the thread too quick panics. v0.2.0
```rust
use terminate_thread::Thread;
- [x] Terminate the job which panics. v0.2.0
```rust
use terminate_thread::Thread;
let thread = Thread::spawn(|| panic!());
thread.terminate();
```