Просмотр исходного кода

CoreTiming/CycleTimer: Correct Idling.

Fernando Sahmkow 6 лет назад
Родитель
Сommit
bfb5244cf8
1 измененных файлов с 5 добавлено и 2 удалено
  1. 5 2
      src/core/core_timing.cpp

+ 5 - 2
src/core/core_timing.cpp

@@ -136,8 +136,11 @@ void CoreTiming::AddTicks(u64 ticks) {
 
 
 void CoreTiming::Idle() {
 void CoreTiming::Idle() {
     if (!event_queue.empty()) {
     if (!event_queue.empty()) {
-        u64 next_event_time = event_queue.front().time;
-        ticks = nsToCycles(std::chrono::nanoseconds(next_event_time)) + 10U;
+        const u64 next_event_time = event_queue.front().time;
+        const u64 next_ticks = nsToCycles(std::chrono::nanoseconds(next_event_time)) + 10U;
+        if (next_ticks > ticks) {
+            ticks = next_ticks;
+        }
         return;
         return;
     }
     }
     ticks += 1000U;
     ticks += 1000U;