diff options
Diffstat (limited to 'src')
4 files changed, 18 insertions, 2 deletions
diff --git a/src/libs/clangsupport/connectionserver.h b/src/libs/clangsupport/connectionserver.h index 68defa48d3..b60083c4f8 100644 --- a/src/libs/clangsupport/connectionserver.h +++ b/src/libs/clangsupport/connectionserver.h @@ -72,6 +72,12 @@ public: } + void ensureAliveMessageIsSent() + { + if (m_aliveTimer.remainingTime() == 0) + sendAliveMessage(); + } + private: void connectToLocalServer(const QString &connectionName) { diff --git a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp index a7ca916f15..f8b71f61b9 100644 --- a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp +++ b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp @@ -273,6 +273,8 @@ int main(int argc, char *argv[]) ConnectionServer<PchManagerServer, PchManagerClientProxy> connectionServer; connectionServer.setServer(&data.clangPchManagerServer); + data.buildDependencyProvider.setEnsureAliveMessageIsSentCallback( + [&] { connectionServer.ensureAliveMessageIsSent(); }); connectionServer.start(connectionName); return application.exec(); diff --git a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp index bf00f39098..c2e3b4a5f9 100644 --- a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp +++ b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp @@ -55,8 +55,10 @@ OutputContainer setUnion(InputContainer1 &&input1, BuildDependency BuildDependenciesProvider::create(const ProjectPartContainer &projectPart) { - auto sourcesAndProjectPart = createSourceEntriesFromStorage( - projectPart.sourcePathIds, projectPart.projectPartId); + m_ensureAliveMessageIsSentCallback(); + + auto sourcesAndProjectPart = createSourceEntriesFromStorage(projectPart.sourcePathIds, + projectPart.projectPartId); if (!m_modifiedTimeChecker.isUpToDate(sourcesAndProjectPart.first)) { BuildDependency buildDependency = m_generator.create(projectPart); diff --git a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h index a006b10a06..924e3e4f45 100644 --- a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h +++ b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h @@ -53,6 +53,11 @@ public: BuildDependency create(const ProjectPartContainer &projectPart) override; + void setEnsureAliveMessageIsSentCallback(std::function<void()> &&callback) + { + m_ensureAliveMessageIsSentCallback = std::move(callback); + } + private: BuildDependency createBuildDependencyFromStorage(SourceEntries &&includes) const; UsedMacros createUsedMacrosFromStorage(const SourceEntries &includes) const; @@ -65,6 +70,7 @@ private: ModifiedTimeCheckerInterface<> &m_modifiedTimeChecker; BuildDependencyGeneratorInterface &m_generator; Sqlite::TransactionInterface &m_transactionBackend; + std::function<void()> m_ensureAliveMessageIsSentCallback; }; } // namespace ClangBackEnd |