Salome HOME
A debug to avoid problems of concurrency on HPContainer.
authorAnthony Geay <anthony.geay@edf.fr>
Wed, 20 Aug 2014 13:29:09 +0000 (15:29 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Wed, 20 Aug 2014 13:29:09 +0000 (15:29 +0200)
src/runtime/SalomeHPContainer.cxx

index 9143f4a1a16df4264f37deb2fbd77782b8dffaa3..de5f1a46198be4ef9561137fdc471374c8bc82c7 100644 (file)
@@ -112,13 +112,21 @@ void SalomeHPContainer::shutdown(int level)
 
 std::string SalomeHPContainer::getPlacementId(const Task *askingNode) const
 {
-  const SalomeContainerMonoHelper *helper(_launchModeType.getHelperOfTask(askingNode));
+  const SalomeContainerMonoHelper *helper(0);
+  {
+    YACS::BASES::AutoLocker<Container> alckCont(const_cast<SalomeHPContainer *>(this));
+    helper=_launchModeType.getHelperOfTask(askingNode);
+  }
   return SalomeContainerTools::GetPlacementId(helper,this,askingNode);
 }
 
 std::string SalomeHPContainer::getFullPlacementId(const Task *askingNode) const
 {
-  const SalomeContainerMonoHelper *helper(_launchModeType.getHelperOfTask(askingNode));
+  const SalomeContainerMonoHelper *helper(0);
+  {
+    YACS::BASES::AutoLocker<Container> alckCont(const_cast<SalomeHPContainer *>(this));
+    helper=_launchModeType.getHelperOfTask(askingNode);
+  }
   return SalomeContainerTools::GetFullPlacementId(helper,this,askingNode);
 }