From 37a4acc7e0437aa3f53f77106dd4b366a441cc17 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 23 Feb 2012 16:22:20 +0000 Subject: (svn r23977) -Fix: don't load a game during UpdateWindows as that might trigger changing the blitter which triggers re-entrant locking --- src/gfx.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/gfx.cpp') diff --git a/src/gfx.cpp b/src/gfx.cpp index 55721e052..5a5c45972 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1732,10 +1732,11 @@ void DrawDirtyBlocks() _modal_progress_paint_mutex->BeginCritical(); _modal_progress_work_mutex->BeginCritical(); - if (_switch_mode != SM_NONE && !HasModalProgress()) { - SwitchToMode(_switch_mode); - _switch_mode = SM_NONE; - } + /* When we ended with the modal progress, do not draw the blocks. + * Simply let the next run do so, otherwise we would be loading + * the new state (and possibly change the blitter) when we hold + * the drawing lock, which we must not do. */ + if (_switch_mode != SM_NONE && !HasModalProgress()) return; } y = 0; -- cgit v1.2.3-54-g00ecf