我应该何时使用flush_delayed_work
和cancel_delayed_work_sync
?
我有以下延迟的工作队列功能:
static void workq_function(struct work_struct *work)
{
// ...
queue_delayed_work_on(2, wrkq, work, msecs_to_jiffies(3000));
}
我在工作队伍中再次重新安排我的工作队伍。 这样做是不错的做法?
现在我将在rmmod
中使用以下内容:
flush_delayed_work(&work);
cancel_delayed_work_sync(&work);
destroy_workqueue(wrkq);
我的系统在rmmod
模块的这些API之后挂起。