//定義gpio_work
struct delayed_work gpio_work;
//定義工作佇列要執行的函式
static void hook_work_callback(struct work_struct *work)
// 初始化工作佇列
static int usb_hub_probe(struct platform_device *pdev)
schedule_delayed_work() 中的第二個引數可以為為當前時間往後推多少ms,初始化gpio_work後,10000ms排程schedule_delay_work()gpio_work,執行hook_work_callback函素,執行完此函式繼續每隔5000ms schedule_delayed_work()
linux INIT WORK 建立工作佇列
linux 2.6核心使用了不少工作佇列來處理任務,他在使用上和 tasklet最大的不同是工作佇列的函式可以使用休眠,而tasklet的函式是不允許使用休眠的。工作佇列的使用又分兩種情況,一種是利用系統共享的工作佇列來新增自己的工作,這種情況處理函式不能消耗太多時間,這樣會影響共享佇列中其他任務的...
linux INIT WORK 建立工作佇列
linux 2.6核心使用了不少工作佇列來處理任務,他在使用上和 tasklet最大的不同是工作佇列的函式可以使用休眠,而tasklet的函式是不允許使用休眠的。工作佇列的使用又分兩種情況,一種是利用系統共享的工作佇列來新增自己的工作,這種情況處理函式不能消耗太多時間,這樣會影響共享佇列中其他任務的...
工作佇列分析
一 用法 struct cpu workqueue struct cacheline aligned the externally visible workqueue abstraction is an array of per cpu workqueues struct workqueue str...