From e76fd99c472237125f03d46ed7bff915e2d6a20b Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 25 Jan 2019 21:22:49 +0100 Subject: [PATCH] Fix #7007: deadlock when launched with -n switch --- src/gfx.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gfx.cpp b/src/gfx.cpp index 605ff7664b..85cd3bfb59 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1317,7 +1317,11 @@ void DrawDirtyBlocks() /* Wait a while and update _realtime_tick so we are given the rights */ if (!IsFirstModalProgressLoop()) CSleep(MODAL_PROGRESS_REDRAW_TIMEOUT); _realtime_tick += MODAL_PROGRESS_REDRAW_TIMEOUT; + + /* Modal progress thread may need blitter access while we are waiting for it. */ + VideoDriver::GetInstance()->ReleaseBlitterLock(); _modal_progress_paint_mutex->BeginCritical(); + VideoDriver::GetInstance()->AcquireBlitterLock(); _modal_progress_work_mutex->BeginCritical(); /* When we ended with the modal progress, do not draw the blocks.