Re: [Prex-devel] sched_wakeone() bug ?
Status: Beta
Brought to you by:
kohtani
From: Giang Hu <fre...@gm...> - 2006-01-18 11:08:08
|
If so, what's about this: Refer: http://prex.sourceforge.net/src/sys/S/51.html#L423 414 static thread_t dequeue_topprio(queue_t head) 415 { 416 queue_t q; 417 thread_t th, top; 418 419 q = queue_first(head); 420 top = queue_entry(q, struct thread, ipc_link); 421 while (!queue_end(head, q)) { 422 th = queue_entry(q, struct thread, ipc_link); 423 if (th->prio > top->prio) 424 top = th; 425 q = queue_next(q); 426 } 427 queue_remove(&top->ipc_link); 428 return top; 429 } One more: Refer: http://prex.sourceforge.net/src/sys/S/58.html#L532 525 void sched_setprio(thread_t th, int base, int prio) 526 { 527 th->base_prio = base; 528 529 if (th == cur_thread) { 530 th->prio = prio; 531 top_prio = runq_top(); 532 if (prio > top_prio) 533 cur_thread->need_resched = 1; 534 } else if (th->state == TH_RUN) { 535 /* Change position of runq */ 536 runq_remove(th); 537 th->prio = prio; 538 runq_enqueue(th); 539 } else { 540 th->prio = prio; 541 } 542 } Cheers, Giang Hu. Tsuyoshi Hatakenaka wrote: > Hello, > > I seem to have found a bug in sched_wakeone(). > > --- prex-0.4.0/sys/kern/sched.c.orig Tue Dec 27 12:50:01 2005 > +++ prex-0.4.0/sys/kern/sched.c Wed Jan 18 18:53:09 2006 > @@ -427,7 +427,7 @@ > top = queue_entry(q, struct thread, link); > while (!queue_end(head, q)) { > th = queue_entry(q, struct thread, link); > - if (th->prio > top->prio) > + if (th->prio < top->prio) > top = th; > q = queue_next(q); > } > > --- > Tsuyoshi Hatakenaka > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 > _______________________________________________ > Prex-devel mailing list > Pre...@li... > https://lists.sourceforge.net/lists/listinfo/prex-devel > > |