[−][src]Crate cancellable_io
A crate implementing cancellable synchronous network I/O.
This crate exposes structs TcpStream, TcpListener and UdpSocket that are similar to their std::net variants, except that I/O operations can be cancelled through Canceller objects created with them.
Most methods work as they do in the std::net implementations, and you should refer to the original documentation for details and examples.
Main differences with the original std::net implementations :
- Methods that return a TcpStream, a TcpListener, or an UdpSocket also return a Canceller object.
- There are no peek() methods (yet?)
- TcpListener and UdpSocket
are not
Sync
(yet?)
Example
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();
Structs
Canceller | An object that can be used to cancel an i/o operation. |
Incoming | An iterator that infinitely accepts connections on a TcpListener. |
TcpListener | A TCP socket server, listening for connections. |
TcpStream | A TCP stream between a local and a remote socket. |
UdpSocket | An UDP socket bound to an address. |
Functions
is_cancelled | Checks if the error returned by a method was caused by the operation being cancelled. |