pub struct Poll { /* private fields */ }
Expand description
The polling system
This type represents the polling system of calloop, on which you
can register your file descriptors. This interface is only accessible in
implementations of the EventSource
trait.
You only need to interact with this type if you are implementing your
own event sources, while implementing the EventSource
trait.
And even in this case, you can often just use the Generic
event
source and delegate the implementations to it.
Implementations§
source§impl Poll
impl Poll
sourcepub fn register(
&mut self,
fd: RawFd,
interest: Interest,
mode: Mode,
token: Token
) -> Result<()>
pub fn register( &mut self, fd: RawFd, interest: Interest, mode: Mode, token: Token ) -> Result<()>
Register a new file descriptor for polling
The file descriptor will be registered with given interest, mode and token. This function will fail if given a bad file descriptor or if the provided file descriptor is already registered.
Leaking tokens
If your event source is dropped without being unregistered, the token passed in here will remain on the heap and continue to be used by the polling system even though no event source will match it.
sourcepub fn reregister(
&mut self,
fd: RawFd,
interest: Interest,
mode: Mode,
token: Token
) -> Result<()>
pub fn reregister( &mut self, fd: RawFd, interest: Interest, mode: Mode, token: Token ) -> Result<()>
Update the registration for a file descriptor
This allows you to change the interest, mode or token of a file descriptor. Fails if the provided fd is not currently registered.
See note on register()
regarding leaking.
sourcepub fn unregister(&mut self, fd: RawFd) -> Result<()>
pub fn unregister(&mut self, fd: RawFd) -> Result<()>
Unregister a file descriptor
This file descriptor will no longer generate events. Fails if the provided file descriptor is not currently registered.