summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2009-11-02 13:36:17 +0000
committersmatz <smatz@openttd.org>2009-11-02 13:36:17 +0000
commitda54a01114c45e888af13f80b49510858f5abc17 (patch)
tree721c142c07e7a5bd2df81f7a7864c1674c0288ef
parentdc4b251dbd8aa17f2af6f0dfb84515bb461f8b32 (diff)
downloadopenttd-da54a01114c45e888af13f80b49510858f5abc17.tar.xz
(svn r17950) -Fix (r17776): _draw_mutex was never destroyed, _draw_thread was never joined
-rw-r--r--src/video/sdl_v.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp
index a0fb3c6d6..477314e0d 100644
--- a/src/video/sdl_v.cpp
+++ b/src/video/sdl_v.cpp
@@ -523,7 +523,7 @@ void VideoDriver_SDL::MainLoop()
InteractiveRandom(); // randomness
while (PollEvent() == -1) {}
- if (_exit_game) return;
+ if (_exit_game) break;
mod = SDL_CALL SDL_GetModState();
keys = SDL_CALL SDL_GetKeyState(&numkeys);
@@ -592,6 +592,8 @@ void VideoDriver_SDL::MainLoop()
if (_draw_threaded) {
_draw_continue = false;
+ /* Sending signal if there is no thread blocked
+ * is very valid and results in noop */
_draw_mutex->SendSignal();
_draw_mutex->EndCritical();
_draw_thread->Join();