Pet*_*iak 6 api multithreading shutdown rust
我在一个单独的线程中的循环中运行acceptTCP侦听器的功能.我想优雅地关闭这个线程,但我看不到任何shutdown可以用来打破接受的机制.
我目前的方法看起来像这样:
use std::net::TcpListener;
use std::thread::spawn;
fn main() {
let tcp_listener = TcpListener::bind((("0.0.0.0"), 0)).unwrap();
let tcp_listener2 = tcp_listener.try_clone().unwrap();
let t = spawn(move || {
loop {
match tcp_listener2.accept() {
Ok(_) => { }
Err(_) => { break; }
}
}
});
drop(tcp_listener);
assert!(t.join().is_ok());
}
Run Code Online (Sandbox Code Playgroud)
但这并不能解决问题(可能是因为我只删除了克隆的副本?).有关如何正确关闭此类线程的任何想法?
(作为参考,我在Rust用户论坛上也问过这个问题)