pub struct Epoll { /* private fields */ }Expand description
Epoll structure
Implementations§
Source§impl Epoll
impl Epoll
Sourcepub fn create() -> Result<Epoll>
pub fn create() -> Result<Epoll>
Create a new epoll instance
Examples found in repository?
examples/example.rs (line 8)
7fn main() {
8 let mut epoll = Epoll::create().unwrap();
9 let mut listener = UnixListener::bind("test.sock").unwrap();
10 epoll.register(listener.as_raw_fd(), LISTENER, Interest::Both, Mode::Edge).unwrap();
11
12 loop {
13 let mut events = epoll.poll(Some(Duration::from_millis(2000))).unwrap();
14
15 for event in events.iter() {
16 // Handle the event, read from the socket
17 // respond to it etc
18 // Here you could also use the utility functions provided in copoll::event;
19 // example just breaks on first event
20 break;
21 }
22 }
23}Sourcepub fn poll(&mut self, timeout: Option<Duration>) -> Result<Events>
pub fn poll(&mut self, timeout: Option<Duration>) -> Result<Events>
Poll the epoll instance for new events. Call this one on each iteration of your event loop
Examples found in repository?
examples/example.rs (line 13)
7fn main() {
8 let mut epoll = Epoll::create().unwrap();
9 let mut listener = UnixListener::bind("test.sock").unwrap();
10 epoll.register(listener.as_raw_fd(), LISTENER, Interest::Both, Mode::Edge).unwrap();
11
12 loop {
13 let mut events = epoll.poll(Some(Duration::from_millis(2000))).unwrap();
14
15 for event in events.iter() {
16 // Handle the event, read from the socket
17 // respond to it etc
18 // Here you could also use the utility functions provided in copoll::event;
19 // example just breaks on first event
20 break;
21 }
22 }
23}Sourcepub fn register(
&mut self,
fd: RawFd,
token: Token,
interest: Interest,
mode: Mode,
) -> Result<()>
pub fn register( &mut self, fd: RawFd, token: Token, interest: Interest, mode: Mode, ) -> Result<()>
Register a new file descriptor in the epoll instance
Examples found in repository?
examples/example.rs (line 10)
7fn main() {
8 let mut epoll = Epoll::create().unwrap();
9 let mut listener = UnixListener::bind("test.sock").unwrap();
10 epoll.register(listener.as_raw_fd(), LISTENER, Interest::Both, Mode::Edge).unwrap();
11
12 loop {
13 let mut events = epoll.poll(Some(Duration::from_millis(2000))).unwrap();
14
15 for event in events.iter() {
16 // Handle the event, read from the socket
17 // respond to it etc
18 // Here you could also use the utility functions provided in copoll::event;
19 // example just breaks on first event
20 break;
21 }
22 }
23}Sourcepub fn reregister(
&mut self,
fd: RawFd,
token: Token,
interest: Interest,
mode: Mode,
) -> Result<()>
pub fn reregister( &mut self, fd: RawFd, token: Token, interest: Interest, mode: Mode, ) -> Result<()>
Reregister a file descriptor in the epoll instance often used when wanting to change say the mode or interest
Sourcepub fn unregister(&mut self, fd: RawFd) -> Result<()>
pub fn unregister(&mut self, fd: RawFd) -> Result<()>
Stop polling events a file descriptor
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Epoll
impl RefUnwindSafe for Epoll
impl Send for Epoll
impl Sync for Epoll
impl Unpin for Epoll
impl UnwindSafe for Epoll
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more