Salome HOME
Fix problem of concurrency
authorAnthony Geay <anthony.geay@edf.fr>
Wed, 1 Apr 2020 07:44:44 +0000 (09:44 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Wed, 1 Apr 2020 07:44:44 +0000 (09:44 +0200)
src/runtime/SalomeHPContainer.cxx
src/yacsloader_swig/Test/testSaveLoadRun.py

index 5925a9b8902b5058dabe0e118bd448c9bb4e21ce..aac34132f04a8920910e1e2d24df877cfa541279 100644 (file)
@@ -132,9 +132,9 @@ void SalomeHPContainer::shutdown(int level)
 
 std::string SalomeHPContainer::getPlacementId(const Task *askingNode) const
 {
-  const SalomeContainerMonoHelper *helper(0);
+  const SalomeContainerMonoHelper *helper(nullptr);
   {
-    YACS::BASES::AutoLocker<Container> alckCont(const_cast<SalomeHPContainer *>(this));
+    std::lock_guard<std::mutex> lg(getPG()->getLocker());
     helper=_launchModeType.getHelperOfTask(askingNode);
   }
   return SalomeContainerTools::GetPlacementId(helper,this,askingNode);
@@ -142,9 +142,9 @@ std::string SalomeHPContainer::getPlacementId(const Task *askingNode) const
 
 std::string SalomeHPContainer::getFullPlacementId(const Task *askingNode) const
 {
-  const SalomeContainerMonoHelper *helper(0);
+  const SalomeContainerMonoHelper *helper(nullptr);
   {
-    YACS::BASES::AutoLocker<Container> alckCont(const_cast<SalomeHPContainer *>(this));
+    std::lock_guard<std::mutex> lg(getPG()->getLocker());
     helper=_launchModeType.getHelperOfTask(askingNode);
   }
   return SalomeContainerTools::GetFullPlacementId(helper,this,askingNode);
index efafa9c7557588e833fe9212d31849653716063c..6ea538cb95af41dab12e144abe2625fba142baf3 100755 (executable)
@@ -1337,7 +1337,7 @@ for i in i8:
     cont.setProperty("nb_proc_per_node","7")           # <- here
     self.assertEqual(n00.getMaxLevelOfParallelism(),7) # <- here
     pass
-
+    
   def test19(self):
     """This test checks the mechanism of YACS that allow PythonNodes to know their DynParaLoop context."""
     fname=os.path.join(self.workdir, "test19.xml")