2015-05-21 30 views
1

在學習內核線程我碰到這段代碼什麼是內核線程中的set_current_state()宏?

while(!kthread_should_stop()){ 
    set_current_state(TASK_RUNNING); 

    /* Doing some stuff here */ 

    set_current_state(TASK_INTERRUPTIBLE); 
    msleep(1000); 

什麼是宏觀set_current_state用於什麼來的,都是正在傳遞的參數。

回答

3

按本LinuxJournal文章

set_current_state()改變當前執行的進程的從TASK_RUNNINGTASK_INTERRUPTIBLE狀態。

這裏,TASK_RUNNINGTASK_INTERRUPTIBLE兩個狀態的過程

  • TASK_RUNNING - 準備運行的進程的狀態爲TASK_RUNNING。
  • TASK_INTERRUPTIBLE - 進程的一個狀態,其中調用了schedule(),該進程從運行隊列中移出