Unify busy waiting behavior across conditional compilation branches (#2508)

* Unify busy waiting behavior across conditional compilation branches

* Inline busy waiting code instead of using static function
This commit is contained in:
flashback-fx 2022-06-07 21:01:29 +02:00 committed by GitHub
parent ae715ba0d8
commit 8c55b40e9e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4826,15 +4826,14 @@ static void InitTimer(void)
// Ref: http://www.geisswerks.com/ryan/FAQS/timing.html --> All about timming on Win32!
void WaitTime(double seconds)
{
#if defined(SUPPORT_BUSY_WAIT_LOOP)
double previousTime = GetTime();
double currentTime = 0.0;
#if defined(SUPPORT_BUSY_WAIT_LOOP) || defined(SUPPORT_PARTIALBUSY_WAIT_LOOP)
double destinationTime = GetTime() + seconds;
#endif
// Busy wait loop
while ((currentTime - previousTime) < seconds) currentTime = GetTime();
#if defined(SUPPORT_BUSY_WAIT_LOOP)
while (GetTime() < destinationTime) { }
#else
#if defined(SUPPORT_PARTIALBUSY_WAIT_LOOP)
double destinationTime = GetTime() + seconds;
double sleepSeconds = seconds - seconds*0.05; // NOTE: We reserve a percentage of the time for busy waiting
#else
double sleepSeconds = seconds;