pub struct RawWaker { /* private fields */ }
Expand description
RawWaker
允许任务执行器的实现者创建 Waker
,该 Waker
提供自定义的唤醒行为。
它由一个数据指针和一个自定义 RawWaker
行为的 虚函数指针表 (vtable) 组成。
Implementations§
source§impl RawWaker
impl RawWaker
const: 1.36.0 · sourcepub const fn new(data: *const (), vtable: &'static RawWakerVTable) -> RawWaker
pub const fn new(data: *const (), vtable: &'static RawWakerVTable) -> RawWaker
根据提供的 data
指针和 vtable
创建新的 RawWaker
。
data
指针可用于存储执行程序所需的任意数据。这可能是,例如
指向与任务关联的 Arc
的类型擦除的指针。
该指针的值将作为第一个参数传递给 vtable
一部分的所有函数。
vtable
自定义从 RawWaker
创建的 Waker
的行为。
对于 Waker
上的每个操作,将调用底层 RawWaker
的 vtable
中的关联函数。
sourcepub fn data(&self) -> *const ()
🔬This is a nightly-only experimental API. (waker_getters
#87021)
pub fn data(&self) -> *const ()
waker_getters
#87021)获取用于创建此 RawWaker
的 data
指针。
sourcepub fn vtable(&self) -> &'static RawWakerVTable
🔬This is a nightly-only experimental API. (waker_getters
#87021)
pub fn vtable(&self) -> &'static RawWakerVTable
waker_getters
#87021)获取用于创建此 RawWaker
的 vtable
指针。