[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Lost] [Patch] kernel: Fix für PF beim Timerablauf
Wenn abort_task einen int 0x20 ausführt, um zum nächsten Task zu
wechseln, ist current_task == NULL. Dann muß erst ein neuer aktiver Task
gesetzt werden, bevor auf Timerabläufe geprüft werden darf (damit der
RPC einen gültigen Absender hat)
Index: src/kernel/src/schedule.c
===================================================================
--- src/kernel/src/schedule.c (Revision 674)
+++ src/kernel/src/schedule.c (Arbeitskopie)
@@ -77,8 +77,6 @@
request_irq(0, do_nothing);
#endif
- timer_notify(timer_ticks);
-
//Ueberpruefen, ob der aktuelle Task alle seine Zeit verbraucht hat. Wenn
// ja, wird ein neuer Task ausgewaehlt
if ((current_task == NULL) ||
@@ -86,6 +84,11 @@
{
schedule(esp);
}
+
+ // Ueberpruefen, ob ein Timer abgelaufen ist.
+ // Dies muss nach dem schedule() kommen, da der Timer mit current_task ==
+ // NULL nicht zurechtkommt.
+ timer_notify(timer_ticks);
}