#io #cancel #networking

cancellable-io

可中断的同步网络I/O

1 个不稳定版本

0.1.1 2019年4月15日
0.1.0 2019年4月11日

#13 in #cancel

Download history 6/week @ 2024-03-10 35/week @ 2024-03-31 3/week @ 2024-04-07 38/week @ 2024-05-26 4/week @ 2024-06-02 18/week @ 2024-06-09 61/week @ 2024-06-16 45/week @ 2024-06-23

129 每月下载量

MIT/Apache

49KB
963 代码行

cancellable-io

实现可取消同步网络I/O的crate。

此crate公开了与它们的std::net变体类似的struct TcpStreamTcpListenerUdpSocket,除了I/O操作可以通过与它们一起创建的 Canceller 对象取消。

大多数方法的工作方式与std::net实现中相同,有关详细信息和方法示例,请参阅 原始文档

与原始std::net实现的主要区别

示例

use cancellable_io::*;
let (listener, canceller) = TcpListener::bind("127.0.0.1:0").unwrap();
let handle = std::thread::spawn(move || {
    println!("Waiting for connections.");
    let r = listener.accept();
    assert!(is_cancelled(&r.unwrap_err()));
    println!("Server cancelled.");
});

std::thread::sleep(std::time::Duration::from_secs(2));
canceller.cancel().unwrap();
handle.join().unwrap();

许可证:MIT/Apache-2.0

依赖关系

~0.6–1MB
~14K SLoC