From 39b5dd4e6ec826c1513f953a3174a8deec29937e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 20 May 2020 11:36:44 +0200 Subject: [PATCH] [libcalamaresui] Avoid deadlock - When loading QML V2, both loadQmlV2Complete() and changeSlideShowState() lock the same mutex, introduced in e7f4479df150efa21a3c225916ee5d6580b17064. - Explicitly unlock when loading is done and we need to change the state immediately. --- src/libcalamaresui/viewpages/Slideshow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libcalamaresui/viewpages/Slideshow.cpp b/src/libcalamaresui/viewpages/Slideshow.cpp index baed36252..0c75dc390 100644 --- a/src/libcalamaresui/viewpages/Slideshow.cpp +++ b/src/libcalamaresui/viewpages/Slideshow.cpp @@ -125,7 +125,11 @@ SlideshowQML::loadQmlV2Complete() if ( isActive() ) { // We're alreay visible! Must have been slow QML loading, and we - // passed onActivate already. + // passed onActivate already. changeSlideShowState() locks + // the same mutex: we could set up a workaround to call + // changeSlideShowState() later after destruction of l. + // + l.unlock(); changeSlideShowState( Slideshow::Start ); } }