Mercurial > hg > orthanc
diff OrthancServer/Sources/ServerContext.h @ 5410:16cbfefa15e9
Solved a deadlock related to the Job Engine events and plugins
author | Alain Mazy <am@osimis.io> |
---|---|
date | Tue, 07 Nov 2023 12:52:37 +0100 |
parents | 566e8d32bd3a |
children | c65e036d649b |
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerContext.h Tue Nov 07 08:38:48 2023 +0100 +++ b/OrthancServer/Sources/ServerContext.h Tue Nov 07 12:52:37 2023 +0100 @@ -139,6 +139,11 @@ context_.mainLua_.SignalChange(change); } + virtual void SignalJobEvent(const JobEvent& event) ORTHANC_OVERRIDE + { + context_.mainLua_.SignalJobEvent(event); + } + virtual bool FilterIncomingInstance(const DicomInstanceToStore& instance, const Json::Value& simplified) ORTHANC_OVERRIDE { @@ -184,6 +189,9 @@ static void ChangeThread(ServerContext* that, unsigned int sleepDelay); + static void JobEventsThread(ServerContext* that, + unsigned int sleepDelay); + static void SaveJobsThread(ServerContext* that, unsigned int sleepDelay); @@ -233,7 +241,9 @@ bool haveJobsChanged_; bool isJobsEngineUnserialized_; SharedMessageQueue pendingChanges_; + SharedMessageQueue pendingJobEvents_; boost::thread changeThread_; + boost::thread jobEventsThread_; boost::thread saveJobsThread_; boost::thread memoryTrimmingThread_;