Skip to main content

PollSet

Struct PollSet 

Source
pub struct PollSet(/* private fields */);
Expand description

A data structure for waking up tasks that are waiting for I/O events.

Implementations§

Source§

impl PollSet

Source

pub const fn new() -> Self

Creates a new empty PollSet.

Source

pub unsafe fn register(&self, waker: &Waker, interests: IoEvents)

Registers a waker for the requested I/O events.

§Safety

This method is task/deferred-context only. Callers must not invoke it from hard IRQ, NMI, or trap callbacks, and must not hold locks that may be re-entered by the registered waker or by poll wakeup paths.

Source

pub unsafe fn wake(&self, ready: IoEvents) -> usize

Wakes up registered wakers whose interests intersect ready.

§Safety

This method is task/deferred-context only. Callers must not invoke it from hard IRQ, NMI, or trap callbacks. The readiness state represented by ready must be published before this method is called, and callers must not hold locks that may be re-entered by waker execution or poll wakeup paths.

Source

pub fn wake_from_irq(&self, ready: IoEvents) -> usize

Wakes up registered wakers whose interests intersect ready from IRQ context.

Unlike wake, this does not allocate a replacement waiter buffer. It drains the already-initialized entries in place, so device IRQ handlers can acknowledge the device and then wake matching poll waiters without allocating in hard IRQ context.

Trait Implementations§

Source§

impl Default for PollSet

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Drop for PollSet

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.