From ba321783e7f66068a5a5379992a8e081a70bf243 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 24 Sep 2014 03:19:55 +0200 Subject: Simplify thread synchronization --- src/control/RPGEdit.cpp | 8 +------- src/control/RPGEdit.hpp | 2 -- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/control/RPGEdit.cpp b/src/control/RPGEdit.cpp index 0f31468..e8d71a6 100644 --- a/src/control/RPGEdit.cpp +++ b/src/control/RPGEdit.cpp @@ -74,12 +74,7 @@ void RPGEdit::systemLoop() { { std::unique_lock lock(modelMutex); - uint64_t time = timeProvider.now(); - - while (time >= handledTime) { - modelCond.wait(lock); - time = timeProvider.now(); - } + uint64_t time = std::min(timeProvider.now(), handledTime); Model::Position pos = ctx->getViewPosition(time); mapView->render(pos.x, pos.y, time); @@ -102,7 +97,6 @@ void RPGEdit::eventLoop() { event.second(); handledTime = eventBus.peek(); - modelCond.notify_one(); } } } diff --git a/src/control/RPGEdit.hpp b/src/control/RPGEdit.hpp index 4279f10..d6f3aee 100644 --- a/src/control/RPGEdit.hpp +++ b/src/control/RPGEdit.hpp @@ -30,7 +30,6 @@ #include "InputHandler.hpp" #include "MapContext.hpp" -#include #include #include #include @@ -54,7 +53,6 @@ private: std::thread eventThread; std::mutex modelMutex; - std::condition_variable modelCond; uint64_t handledTime = std::numeric_limits::max(); void enqueueNow(const EventBus::Event &event) { -- cgit v1.2.3