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_;