mahkoh / fdpoll.rs

1 stars 0 forks source link

fdpoll.rs

A library for integrating file descriptors into Rust's select pattern.

Currently Linux and BSD (untested) are supported via epoll and kqueue.

Documentation

Example

let fdpoll = FDPoll::new(3).unwrap();
fdpoll.add(0, Read).unwrap();
fdpoll.wait().unwrap();

let select = Select::new();
let mut handle = select.handle(&fdpoll.rcv);
unsafe { handle.add() };

loop {
    let ret = select.wait();
    if ret == handle.id() {
        fdpoll.rcv.recv().unwrap();
        for e in fdpoll.events().unwrap().slice().iter() {
            println!("fd: {} read: {} write: {}", e.fd(), e.read(), e.write());
            if e.fd() == 0 {
                println!(":::{}", std::io::stdin().read_line().ok());
            }
        }
        fdpoll.wait().unwrap();
    }
}