# [−] [src] Struct tokio::io::unix::AsyncFdReadyGuard

    #[must_use =
      "You must explicitly choose whether to clear the readiness state by calling a method on ReadyGuard"]pub struct AsyncFdReadyGuard<'a, T: AsRawFd> { /* fields omitted */ }

Represents an IO-ready event detected on a particular file descriptor that has not yet been acknowledged. This is a `must_use` structure to help ensure that you do not forget to explicitly clear (or not clear) the event.

This type exposes an immutable reference to the underlying IO object.

## Implementations

### `impl<'a, Inner: AsRawFd> AsyncFdReadyGuard<'a, Inner>` [src]

#### `pub fn clear_ready(&mut self)` [src]

Indicates to tokio that the file descriptor is no longer ready. The internal readiness flag will be cleared, and tokio will wait for the next edge-triggered readiness notification from the OS.

It is critical that this function not be called unless your code actually observes that the file descriptor is not ready. Do not call it simply because, for example, a read succeeded; it should be called when a read is observed to block.

#### `pub fn retain_ready(&mut self)` [src]

This method should be invoked when you intentionally want to keep the ready flag asserted.

While this function is itself a no-op, it satisfies the `#[must_use]` constraint on the `AsyncFdReadyGuard` type.

#### `pub fn try_io<R>(
&mut self,
f: impl FnOnce(&AsyncFd<Inner>) -> Result<R>
) -> Result<Result<R>, TryIoError>` [src]

Performs the provided IO operation.

If `f` returns a `WouldBlock` error, the readiness state associated with this file descriptor is cleared, and the method returns `Err(TryIoError::WouldBlock)`. You will typically need to poll the `AsyncFd` again when this happens.

This method helps ensure that the readiness state of the underlying file descriptor remains in sync with the tokio-side readiness state, by clearing the tokio-side state only when a `WouldBlock` condition occurs. It is the responsibility of the caller to ensure that `f` returns `WouldBlock` only if the file descriptor that originated this `AsyncFdReadyGuard` no longer expresses the readiness state that was queried to create this `AsyncFdReadyGuard`.

## Trait Implementations

### `impl<'a, T: Debug + AsRawFd> Debug for AsyncFdReadyGuard<'a, T>` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter. Read more

## Auto Trait Implementations

### `impl<'a, T> !RefUnwindSafe for AsyncFdReadyGuard<'a, T>`

### `impl<'a, T> Send for AsyncFdReadyGuard<'a, T> where
T: Sync,`

### `impl<'a, T> Sync for AsyncFdReadyGuard<'a, T> where
T: Sync,`

### `impl<'a, T> Unpin for AsyncFdReadyGuard<'a, T>`

### `impl<'a, T> !UnwindSafe for AsyncFdReadyGuard<'a, T>`

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &Tⓘ

### Notable traits for &'_ mut F

`impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;`
` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut Tⓘ

### Notable traits for &'_ mut F

`impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;`
` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

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

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.