Mercurial > hg > orthanc-stone
diff Platforms/Generic/WebServiceCommandBase.cpp @ 271:46c5296d867e am-2
OracleWebService and BasicSdlApplicationContext using the same global mutex
author | am@osimis.io |
---|---|
date | Thu, 23 Aug 2018 17:12:54 +0200 |
parents | 89d02de83c03 |
children | dc1beee33134 |
line wrap: on
line diff
--- a/Platforms/Generic/WebServiceCommandBase.cpp Thu Aug 23 14:45:04 2018 +0200 +++ b/Platforms/Generic/WebServiceCommandBase.cpp Thu Aug 23 17:12:54 2018 +0200 @@ -26,17 +26,19 @@ namespace OrthancStone { WebServiceCommandBase::WebServiceCommandBase(MessageBroker& broker, - IWebService::ICallback& callback, - const Orthanc::WebServiceParameters& parameters, - const std::string& uri, - const IWebService::Headers& headers, - Orthanc::IDynamicObject* payload /* takes ownership */) : + IWebService::ICallback& callback, + const Orthanc::WebServiceParameters& parameters, + const std::string& uri, + const IWebService::Headers& headers, + Orthanc::IDynamicObject* payload /* takes ownership */, + BasicSdlApplicationContext& context) : IObservable(broker), callback_(callback), parameters_(parameters), uri_(uri), headers_(headers), - payload_(payload) + payload_(payload), + context_(context) { DeclareEmittableMessage(MessageType_HttpRequestError); DeclareEmittableMessage(MessageType_HttpRequestSuccess); @@ -46,6 +48,8 @@ void WebServiceCommandBase::Commit() { + BasicSdlApplicationContext::GlobalMutexLocker lock(context_); // we want to make sure that, i.e, the UpdateThread is not triggered while we are updating the "model" with the result of a WebServiceCommand + if (success_) { IWebService::ICallback::HttpRequestSuccessMessage message(uri_, answer_.c_str(), answer_.size(), payload_.release());