DelayedWork

Struct DelayedWork 

Source
pub struct DelayedWork<T: ?Sized, const ID: u64 = 0> { /* private fields */ }
Expand description

Links for a delayed work item.

This struct contains a function pointer to the run function from the WorkItemPointer trait, and defines the linked list pointers necessary to enqueue a work item in a workqueue in a delayed manner.

Wraps the kernel’s C struct delayed_work.

This is a helper type used to associate a delayed_work with the WorkItem that uses it.

Implementations§

Source§

impl<T: ?Sized, const ID: u64> DelayedWork<T, ID>

Source

pub fn project<'__pin>( self: Pin<&'__pin mut Self>, ) -> DelayedWorkProjection<'__pin, T, ID>

Pin-projects all fields of Self.

These fields are structurally pinned:

  • dwork

These fields are not structurally pinned:

  • _inner
Source§

impl<T: ?Sized, const ID: u64> DelayedWork<T, ID>

Source

pub fn new( work_name: &'static CStr, work_key: Pin<&'static LockClassKey>, timer_name: &'static CStr, timer_key: Pin<&'static LockClassKey>, ) -> impl PinInit<Self>
where T: WorkItem<ID>,

Creates a new instance of DelayedWork.

Source

pub unsafe fn raw_as_work(ptr: *const Self) -> *mut Work<T, ID>

Get a pointer to the inner delayed_work.

§Safety

The provided pointer must not be dangling and must be properly aligned. (But the memory need not be initialized.)

Trait Implementations§

Source§

impl<T: ?Sized, const ID: u64> HasPinData for DelayedWork<T, ID>

Source§

type PinData = __ThePinData<T, ID>

Source§

unsafe fn __pin_data() -> Self::PinData

Source§

impl<T: ?Sized, const ID: u64> Send for DelayedWork<T, ID>

Source§

impl<T: ?Sized, const ID: u64> Sync for DelayedWork<T, ID>

Auto Trait Implementations§

§

impl<T, const ID: u64 = 0> !Freeze for DelayedWork<T, ID>

§

impl<T, const ID: u64 = 0> !RefUnwindSafe for DelayedWork<T, ID>

§

impl<T, const ID: