Skip to main content

DeliveryThread

Struct DeliveryThread 

Source
pub(crate) struct DeliveryThread<'a> {
    pub(crate) ring: Arc<DeliveryRing>,
    pub(crate) inner: &'a Inner,
    pub(crate) join: Option<JoinHandle<()>>,
}
Expand description

Owns the delivery thread for the lifetime of one capture run and tears it down on Drop, so teardown also happens when the capture thread UNWINDS.

Closing the ring is the delivery thread’s only wake-up: skip it and the thread parks in pop() forever, pinning the Python callback and leaving deliver_tid set to a tid the OS may hand to an unrelated thread (whose stop_capture would then be mistaken for a re-entrant self-stop and silently do nothing).

Fields§

§ring: Arc<DeliveryRing>§inner: &'a Inner§join: Option<JoinHandle<()>>

Trait Implementations§

Source§

impl Drop for DeliveryThread<'_>

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<'a> !RefUnwindSafe for DeliveryThread<'a>

§

impl<'a> !UnwindSafe for DeliveryThread<'a>

§

impl<'a> Freeze for DeliveryThread<'a>

§

impl<'a> Send for DeliveryThread<'a>

§

impl<'a> Sync for DeliveryThread<'a>

§

impl<'a> Unpin for DeliveryThread<'a>

§

impl<'a> UnsafeUnpin for DeliveryThread<'a>

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.
§

impl<T> Ungil for T
where T: Send,