diff Plugins/Engine/OrthancPlugins.cpp @ 1553:7c4b487b3b4a

ensure mutual exclusion in InvokeService
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 20 Aug 2015 10:32:43 +0200
parents 33d34bc4ac15
children 89ab71a68fcf
line wrap: on
line diff
--- a/Plugins/Engine/OrthancPlugins.cpp	Wed Aug 19 21:16:53 2015 +0200
+++ b/Plugins/Engine/OrthancPlugins.cpp	Thu Aug 20 10:32:43 2015 +0200
@@ -129,6 +129,7 @@
     boost::recursive_mutex restCallbackMutex_;
     boost::recursive_mutex storedCallbackMutex_;
     boost::recursive_mutex changeCallbackMutex_;
+    boost::recursive_mutex invokeServiceMutex_;
     Properties properties_;
     int argc_;
     char** argv_;
@@ -856,6 +857,8 @@
   bool OrthancPlugins::InvokeService(_OrthancPluginService service,
                                      const void* parameters)
   {
+    boost::recursive_mutex::scoped_lock lock(pimpl_->invokeServiceMutex_);
+
     switch (service)
     {
       case _OrthancPluginService_GetOrthancPath: