2015-05-21 3 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_RUNNING к TASK_INTERRUPTIBLE.

Здесь TASK_RUNNING и TASK_INTERRUPTIBLE два состояния процесса.

  • TASK_RUNNING - Готовый к запуску процесс имеет состояние TASK_RUNNING.
  • TASK_INTERRUPTIBLE - Вызывается состояние процесса, с которым вызывается schedule(), процесс перемещается от очереди.
Смежные вопросы