]> AND Public Git Repository - simgrid.git/blobdiff - src/mc/mc_state.hpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC: Trade less use of executed_req for more network messages
[simgrid.git] / src / mc / mc_state.hpp
index ec53b61db97bfe1fb61e367859f246a6cd3ae71c..d5bc4bd0ca838fe0ae1fb389ffc2ee002db20b0a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2022. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -27,15 +27,8 @@ public:
   /** The simcall which was executed, going out of that state */
   s_smx_simcall executed_req_;
 
-  /* Internal translation of the executed_req simcall
-   *
-   * Simcall::COMM_TESTANY is translated to a Simcall::COMM_TEST
-   * and Simcall::COMM_WAITANY to a Simcall::COMM_WAIT.
-   */
-  s_smx_simcall internal_req_;
-
-  /* Can be used as a copy of the remote synchro object */
-  simgrid::mc::Remote<simgrid::kernel::activity::CommImpl> internal_comm_;
+  /** Observer of the transition leading to that sate */
+  RemotePtr<kernel::actor::SimcallObserver> remote_observer_;
 
   /** Snapshot of system state (if needed) */
   std::shared_ptr<simgrid::mc::Snapshot> system_state_;
@@ -46,11 +39,8 @@ public:
 
   explicit State(unsigned long state_number);
 
-  std::size_t interleave_size() const;
-  void add_interleaving_set(const simgrid::kernel::actor::ActorImpl* actor)
-  {
-    this->actor_states_[actor->get_pid()].consider();
-  }
+  std::size_t count_todo() const;
+  void mark_todo(aid_t actor) { this->actor_states_[actor].mark_todo(); }
   Transition get_transition() const;
 
 private: