[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdevelop] languages/plugins/custom-definesandincludes/compilerprovider: Fix race
From:       Milian Wolff <mail () milianw ! de>
Date:       2014-11-30 17:54:28
Message-ID: E1Xv8hY-0000HF-EW () scm ! kde ! org
[Download RAW message or body]

Git commit 08b1d68deb6279d39cc1a23f89a8394d6a5140fa by Milian Wolff.
Committed on 30/11/2014 at 17:42.
Pushed by mwolff into branch 'master'.

Fix race condition on startup.

I think this will need to be backported to 1.7 as well.

M  +6    -0    languages/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp


http://commits.kde.org/kdevelop/08b1d68deb6279d39cc1a23f89a8394d6a5140fa

diff --git a/languages/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp \
b/languages/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp \
                index 7ab20ed..3643e78 100644
--- a/languages/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp
                
+++ b/languages/plugins/custom-definesandincludes/compilerprovider/compilerprovider.cpp
 @@ -86,8 +86,14 @@ CompilerProvider::CompilerProvider( SettingsManager* settings, \
QObject* parent )  registerCompiler(CompilerPointer(new NoCompiler()));
     retrieveUserDefinedCompilers();
 
+    // NOTE: we connect to both, projectAboutToBeOpened as well as projectOpened.
+    // The former to be sure we get called as soon as possible, the latter to \
prevent +    // a race condition, where this plugin gets initialized but a project \
just emitted that +    // it is about to be opened, but did not open yet.
     connect( ICore::self()->projectController(), \
&IProjectController::projectAboutToBeOpened,  this, &CompilerProvider::projectOpened \
); +    connect( ICore::self()->projectController(), \
&IProjectController::projectOpened, +             this, \
                &CompilerProvider::projectOpened );
     connect( ICore::self()->projectController(), &IProjectController::projectClosed,
              this, &CompilerProvider::projectClosed);
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic