vcl/inc/svdata.hxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit 61a308be8d7e2a578054c3d6d540873eecc88145
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Aug 23 19:15:00 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat Aug 26 08:18:30 2023 +0200

    tsan: use std::atomic<bool> for mbAppQuit
    
    which is (IMO) the same as using volatile, but seems to make tsan
    happier
    
    Change-Id: I52024716ea75d7113357a169e225eee85cf22229
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156108
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index 44ed38f2eb9d..104b9543b74a 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -47,6 +47,7 @@
 #include "windowdev.hxx"
 #include "displayconnectiondispatch.hxx"
 
+#include <atomic>
 #include <mutex>
 #include <optional>
 #include <vector>
@@ -165,7 +166,7 @@ struct ImplSVAppData
     SystemWindowFlags       mnSysWinMode = SystemWindowFlags(0); // Mode, when 
SystemWindows should be created
     bool                    mbInAppMain = false;            // is 
Application::Main() on stack
     bool                    mbInAppExecute = false;         // is 
Application::Execute() on stack
-    volatile bool           mbAppQuit = false;              // is 
Application::Quit() called, volatile because we read/write from different 
threads
+    std::atomic<bool>       mbAppQuit = false;              // is 
Application::Quit() called, volatile because we read/write from different 
threads
     bool                    mbSettingsInit = false;         // true: Settings 
are initialized
     DialogCancelMode meDialogCancel = DialogCancelMode::Off; // true: All 
Dialog::Execute() calls will be terminated immediately with return false
     bool mbRenderToBitmaps = false; // set via svp / headless plugin

Reply via email to