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 unsafe fn register(
&self,
fd: impl AsFd,
interest: Interest,
mode: Mode,
token: Token
) -> Result<()>
pub unsafe fn register( &self, fd: impl AsFd, 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.
Safety
The registered source must not be dropped before it is unregistered.
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(
&self,
fd: impl AsFd,
interest: Interest,
mode: Mode,
token: Token
) -> Result<()>
pub fn reregister( &self, fd: impl AsFd, 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(&self, fd: impl AsFd) -> Result<()>
pub fn unregister(&self, fd: impl AsFd) -> Result<()>
Unregister a file descriptor
This file descriptor will no longer generate events. Fails if the provided file descriptor is not currently registered.