Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
5409:68231ca4363a | 5410:16cbfefa15e9 |
---|---|
137 virtual void SignalChange(const ServerIndexChange& change) ORTHANC_OVERRIDE | 137 virtual void SignalChange(const ServerIndexChange& change) ORTHANC_OVERRIDE |
138 { | 138 { |
139 context_.mainLua_.SignalChange(change); | 139 context_.mainLua_.SignalChange(change); |
140 } | 140 } |
141 | 141 |
142 virtual void SignalJobEvent(const JobEvent& event) ORTHANC_OVERRIDE | |
143 { | |
144 context_.mainLua_.SignalJobEvent(event); | |
145 } | |
146 | |
142 virtual bool FilterIncomingInstance(const DicomInstanceToStore& instance, | 147 virtual bool FilterIncomingInstance(const DicomInstanceToStore& instance, |
143 const Json::Value& simplified) ORTHANC_OVERRIDE | 148 const Json::Value& simplified) ORTHANC_OVERRIDE |
144 { | 149 { |
145 return context_.filterLua_.FilterIncomingInstance(instance, simplified); | 150 return context_.filterLua_.FilterIncomingInstance(instance, simplified); |
146 } | 151 } |
181 typedef std::list<ServerListener> ServerListeners; | 186 typedef std::list<ServerListener> ServerListeners; |
182 | 187 |
183 | 188 |
184 static void ChangeThread(ServerContext* that, | 189 static void ChangeThread(ServerContext* that, |
185 unsigned int sleepDelay); | 190 unsigned int sleepDelay); |
191 | |
192 static void JobEventsThread(ServerContext* that, | |
193 unsigned int sleepDelay); | |
186 | 194 |
187 static void SaveJobsThread(ServerContext* that, | 195 static void SaveJobsThread(ServerContext* that, |
188 unsigned int sleepDelay); | 196 unsigned int sleepDelay); |
189 | 197 |
190 #if HAVE_MALLOC_TRIM == 1 | 198 #if HAVE_MALLOC_TRIM == 1 |
231 | 239 |
232 bool done_; | 240 bool done_; |
233 bool haveJobsChanged_; | 241 bool haveJobsChanged_; |
234 bool isJobsEngineUnserialized_; | 242 bool isJobsEngineUnserialized_; |
235 SharedMessageQueue pendingChanges_; | 243 SharedMessageQueue pendingChanges_; |
244 SharedMessageQueue pendingJobEvents_; | |
236 boost::thread changeThread_; | 245 boost::thread changeThread_; |
246 boost::thread jobEventsThread_; | |
237 boost::thread saveJobsThread_; | 247 boost::thread saveJobsThread_; |
238 boost::thread memoryTrimmingThread_; | 248 boost::thread memoryTrimmingThread_; |
239 | 249 |
240 std::unique_ptr<SharedArchive> queryRetrieveArchive_; | 250 std::unique_ptr<SharedArchive> queryRetrieveArchive_; |
241 std::string defaultLocalAet_; | 251 std::string defaultLocalAet_; |