主要是三個函數:runqueue_init()、runqueue_task_add()、runqueue_process_add()
runqueue_init():初始化
runqueue_task_add():將 task 加到 runqueue,並在 1 ms 後嘗試執行,可限制最多同時跑多少 task,也可以限制 task 最久跑多久。嘗試執行時 runqueue 已經空了,沒有 task 待執行或執行中,1 ms 後執行 empty_cb()。
runqueue_process_add():讓 runqueue 知道 task 結束,方便啟動下個 task。
應用參考:OpenWrt /sbin/init
相關:safe_list、uloop
參考來源:libubox
沒有留言:
張貼留言