X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Ftime.c;h=3d06b0e733143c1d1c0570d62e9accc129227a0b;hb=2337aa1fb9c4289294e1e4f23d0318faac5450ce;hp=9ddf26a374e28da4d766e7c4834521507226e4da;hpb=09e044c2338f194d0f179aff6358bf9fd0739768;p=tpg%2Facess2.git diff --git a/Kernel/time.c b/Kernel/time.c index 9ddf26a3..3d06b0e7 100644 --- a/Kernel/time.c +++ b/Kernel/time.c @@ -17,13 +17,12 @@ typedef struct sTimer { } tTimer; // === PROTOTYPES === -Sint64 now(void); void Timer_CallTimers(void); // === GLOBALS === -Uint64 giTicks = 0; -Sint64 giTimestamp = 0; -Uint64 giPartMiliseconds = 0; +volatile Uint64 giTicks = 0; +volatile Sint64 giTimestamp = 0; +volatile Uint64 giPartMiliseconds = 0; tTimer gTimers[NUM_TIMERS]; // TODO: Replace by a ring-list timer // === CODE === @@ -85,12 +84,13 @@ void Time_RemoveTimer(int ID) */ void Time_Delay(int Delay) { - Sint64 dest = giTimestamp + Delay; - while(dest > giTimestamp) Threads_Yield(); + Sint64 dest = now() + Delay; + //Log("Time_Delay: dest = %lli", dest); + while(dest > now()) Threads_Yield(); + //Log("Time_Delay: giTimestamp = %lli", giTimestamp); } // === EXPORTS === -EXPORT(now); EXPORT(Time_CreateTimer); EXPORT(Time_RemoveTimer); EXPORT(Time_Delay);