pub struct IrqWaitDrain { /* private fields */ }Expand description
Revoked IRQ registration waiting out an in-flight notification claim.
A drain never writes registration state. The notifier’s Notifying claim
covers every access to the node and its wake payload, and publishes
Detached as its final action, so this type only needs to observe that
publication before the registration may be reused.
Implementations§
Source§impl IrqWaitDrain
impl IrqWaitDrain
Sourcepub fn is_quiescent(&self) -> bool
pub fn is_quiescent(&self) -> bool
Reports whether the in-flight notifier has published its release.
Sourcepub fn finish(self)
pub fn finish(self)
Waits until the in-flight notifier has published its release.
Every notifier section runs in hard IRQ or with preemption disabled,
so the claim always ends in bounded time. This is Linux’s hard-path
irq_work_sync() shape (while (irq_work_is_busy(work)) cpu_relax();):
a park would require exactly the post-release completion wake that the
Notifying-covers-everything ownership rule removes.