struct Kernel_Thread* Get_Next_Runnable(void) { struct Kernel_Thread* best = 0; /* Find the

来源:互联网 发布:多益网络行政面试 编辑:程序博客网 时间:2024/06/05 16:52
struct Kernel_Thread* Get_Next_Runnable(void){    struct Kernel_Thread* best = 0;    /* Find the best thread from the highest-priority run queue */    /* TODO("Find a runnable thread from run queues");*/    best=Find_Best(&s_runQueue[0]);    if(best!=0){Remove_Thread(&s_runQueue[0],best);                   return best;}    else {      best=Find_Best(&s_runQueue[1]);      if(best!=0){Remove_Thread(&s_runQueue[1],best);return best;}      else {best=Find_Best(&s_runQueue[2]);        if(best!=0){Remove_Thread(&s_runQueue[2],best);return best;}        else { best=Find_Best(&s_runQueue[3]);          Remove_Thread(&s_runQueue[3],best);  return best;}      }    }   }