Salome HOME
Generate an error when no resource can run a task with the workload manager.
[modules/yacs.git] / src / engine / WlmTask.cxx
index 09ae95b87c5f5fb54d65dc8874ee547640aa23a4..1d135f9fc49259eabaa95d341830b2592701c76e 100644 (file)
@@ -57,10 +57,17 @@ const WorkloadManager::ContainerType& WlmTask::type()const
 
 void WlmTask::run(const WorkloadManager::RunInfo& runInfo)
 {
-  _executor.loadTask(_yacsTask, runInfo);
-  _executor.makeDatastreamConnections(_yacsTask);
-  YACS::Event ev = _executor.runTask(_yacsTask);
-  _executor.endTask(_yacsTask, ev);
+  if(runInfo.isOk)
+  {
+    _executor.loadTask(_yacsTask, runInfo);
+    _executor.makeDatastreamConnections(_yacsTask);
+    YACS::Event ev = _executor.runTask(_yacsTask);
+    _executor.endTask(_yacsTask, ev);
+  }
+  else
+  {
+    _executor.failTask(_yacsTask, runInfo.error_message);
+  }
   delete this; // provisoire
 }
 
@@ -90,6 +97,7 @@ void WlmTask::loadResources(WorkloadManager::WorkloadManager& wm)
     newResource.nbCores = res.second;
     wm.addResource(newResource);
   }
+  wm.freezeResources();
 }
 
 }