Skip to content

Gilnaa/epoll-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

epoll-rs

A safe and (in)sufficient wrapper around Linux's EPoll interface.

Example

let mut epoll = EPoll::new();

// Register a file-like object onto the epoll.
// The last parameter is a user-defined identifier
epoll.add(&some_pipe, EPOLLIN, 0)?;
epoll.add(&timer, EPOLLIN, 1)?;

let mut events = [Event::default(); 2];
let event_count = epoll.wait(&mut events, Timeout::Milliseconds(500))?;
for e in &events[..event_count] {
    match e.data {
        0 => { /* Do something with the socket */ },
        1 => { /* Do something with the timer  */ },
        _ => unreachable!()
    };
}

TODO:

Some kind of a more sophisticated event-loop.

About

Sufficient EPoll abstraction

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages