Sorry for this OT, I found a point in kern_switch.c, when choosethread() runs, 
you reset kg_last_assigned to NULL, I suspect it is incorrect, should it be:

--- kern_switch.c.orig  Sun Jun  2 14:52:24 2002
+++ kern_switch.c       Sun Jun  2 14:53:28 2002
@@ -67,7 +67,9 @@
                        kg = ke->ke_ksegrp;
                        TAILQ_REMOVE(&kg->kg_runq, td, td_runq);
                        if (kg->kg_last_assigned == td) 
-                               kg->kg_last_assigned = NULL;
+                               kg->kg_last_assigned =
+                                       TAILQ_PREV(td,
+                                           threadlist_head, td_runq);
                }
                CTR2(KTR_RUNQ, "choosethread: td=%p pri=%d",
                    td, td->td_priority);


__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to