Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Implement a second veto on start. Activity must be assigned to a resource
[simgrid.git] / include / simgrid / s4u / Activity.hpp
index 83d4870..6e894f6 100644 (file)
@@ -33,6 +33,8 @@ protected:
   Activity()  = default;
   virtual ~Activity() = default;
 
+  virtual bool is_assigned() = 0;
+
   void release_dependencies()
   {
     while (not successors_.empty()) {
@@ -56,8 +58,8 @@ public:
   void vetoable_start()
   {
     state_ = State::STARTING;
-    if (dependencies_.empty()) {
-      XBT_CVERB(s4u_activity, "All dependencies are solved, let's start '%s'", get_cname());
+    if (dependencies_.empty() && is_assigned()) {
+      XBT_CVERB(s4u_activity, "'%s' is assigned to a resource and all dependencies are solved. Let's start", get_cname());
       start();
     }
   }