X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Ftime.c;h=dcc4f79eeb64523bde2ca237266a350463fca5c4;hb=86f49ede5038704ac4f12eab9794e9a8110a4985;hp=c048d11af41e23ceeaffae5558a233a78905ce6e;hpb=da7ef0c8cace452ccfdfa0881a3c0b09970874d8;p=tpg%2Facess2.git diff --git a/Kernel/time.c b/Kernel/time.c index c048d11a..dcc4f79e 100644 --- a/Kernel/time.c +++ b/Kernel/time.c @@ -24,7 +24,7 @@ void Timer_CallTimers(void); Uint64 giTicks = 0; Sint64 giTimestamp = 0; Uint64 giPartMiliseconds = 0; -tTimer gTimers[NUM_TIMERS]; +tTimer gTimers[NUM_TIMERS]; // TODO: Replace by a ring-list timer // === CODE === /** @@ -43,16 +43,15 @@ void Timer_CallTimers() { int i; void (*callback)(void *); + void *arg; - for(i = 0; - i < NUM_TIMERS; - i ++) + for(i = 0; i < NUM_TIMERS; i ++) { if(gTimers[i].Callback == NULL) continue; if(giTimestamp < gTimers[i].FiresAfter) continue; - callback = gTimers[i].Callback; + callback = gTimers[i].Callback; arg = gTimers[i].Argument; gTimers[i].Callback = NULL; - callback(gTimers[i].Argument); + callback(arg); } } @@ -96,7 +95,7 @@ void Time_RemoveTimer(int ID) void Time_Delay(int Delay) { Sint64 dest = giTimestamp + Delay; - while(dest < giTimestamp) Threads_Yield(); + while(dest > giTimestamp) Threads_Yield(); } // === EXPORTS ===