diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2014-09-24 03:19:55 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2014-09-24 03:19:55 +0200 |
commit | ba321783e7f66068a5a5379992a8e081a70bf243 (patch) | |
tree | bf99da94566abbd92a330bab79c78319424a25b8 /src | |
parent | b5c7b4a162a780980b3ecacf0edd49541888a0a8 (diff) | |
download | rpgedit-ba321783e7f66068a5a5379992a8e081a70bf243.tar rpgedit-ba321783e7f66068a5a5379992a8e081a70bf243.zip |
Simplify thread synchronization
Diffstat (limited to 'src')
-rw-r--r-- | src/control/RPGEdit.cpp | 8 | ||||
-rw-r--r-- | src/control/RPGEdit.hpp | 2 |
2 files changed, 1 insertions, 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<std::mutex> 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 <condition_variable> #include <memory> #include <mutex> #include <thread> @@ -54,7 +53,6 @@ private: std::thread eventThread; std::mutex modelMutex; - std::condition_variable modelCond; uint64_t handledTime = std::numeric_limits<uint64_t>::max(); void enqueueNow(const EventBus::Event &event) { |