Crate cancellable_io

Source
Expand description

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 :

§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§

  • An object that can be used to cancel an i/o operation.
  • An iterator that infinitely accepts connections on a TcpListener.
  • A TCP socket server, listening for connections.
  • A TCP stream between a local and a remote socket.
  • An UDP socket bound to an address.

Functions§

  • Checks if the error returned by a method was caused by the operation being cancelled.