Skip to main content

Ack

Struct Ack 

Source
pub struct Ack { /* private fields */ }
Expand description

The render-thread side of an acknowledgment barrier: the render thread holds this (moved out of a RenderCommand::Pause/RenderCommand::SurfaceDestroyed) while honoring the command, then acknowledges it — unblocking the UI thread’s paired AckWaiter.

Dropping an Ack without an explicit acknowledge still signals (a safety net so a render thread that returns early — or panics past the command — can never deadlock the UI thread), but a render loop should acknowledge explicitly after the pause/destroy work is done, which is exactly the barrier the two platform hazards need (Android window release, iOS backgrounding).

Implementations§

Source§

impl Ack

Source

pub fn acknowledge(self)

Signal the paired AckWaiter that the command has been honored, consuming the ack. Equivalent to dropping it (the signal fires in Drop), but reads as the deliberate end-of-command acknowledgment the barrier contract expects.

Trait Implementations§

Source§

impl Debug for Ack

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for Ack

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§

§

impl Freeze for Ack

§

impl RefUnwindSafe for Ack

§

impl Send for Ack

§

impl Sync for Ack

§

impl Unpin for Ack

§

impl UnsafeUnpin for Ack

§

impl UnwindSafe for Ack

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> ErasedDestructor for T
where T: 'static,

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> StorageAccess<T> for T

Source§

fn as_borrowed(&self) -> &T

Borrows the value.
Source§

fn into_taken(self) -> T

Takes the value.
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.