Tasklet
Tasklet 是一种基于 softirq 的 bottom-half 机制,用于在软中断上下文中执行轻量级、不可睡眠的回调逻辑。
语义要点
可在 hardirq/softirq/task context 调度。
同一个 tasklet 同时只会有一个执行实例(自串行)。
重复 schedule 会去重,不会无限入队。
回调运行在 softirq 上下文,不允许睡眠。
数据传递
Tasklet 的回调通过 TaskletFunc trait 进行抽象,等价的函数签名为:
fn(usize, Option<Arc<dyn TaskletData>>)
usize适用于简单数值或索引。Option<Arc<dyn TaskletData>>适用于需要安全共享的复杂数据。
TaskletData 约束为 Send + Sync,通过 Arc 安全共享,避免传入裸指针。