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

Public GIT Repository
Merge branch 'add_missing_comm_python_bindings' into 'master'
[simgrid.git] / src / kernel / activity / MutexImpl.hpp
index bbdef1cd9f70498ffd594d6cfaf8b7ced3c758e6..6e1075e82ad438a117073688fc10c17a6d9cb0e3 100644 (file)
@@ -41,8 +41,7 @@ namespace activity {
  * of a set if some transitions may become disabled in between, while you don't have to reconsider them if you can reuse
  * your previous computations).
  */
-class XBT_PUBLIC MutexAcquisitionImpl
-    : public ActivityImpl_T<MutexAcquisitionImpl> { // Acquisition: n. The act or process of acquiring.
+class XBT_PUBLIC MutexAcquisitionImpl : public ActivityImpl_T<MutexAcquisitionImpl> {
   actor::ActorImpl* issuer_ = nullptr;
   MutexImpl* mutex_         = nullptr;
 
@@ -66,8 +65,9 @@ class XBT_PUBLIC MutexImpl {
   std::atomic_int_fast32_t refcount_{1};
   s4u::Mutex piface_;
   actor::ActorImpl* owner_ = nullptr;
-  // List of sleeping actors:
-  std::deque<MutexAcquisitionImplPtr> sleeping_;
+  std::deque<MutexAcquisitionImplPtr> ongoing_acquisitions_;
+  static unsigned next_id_;
+  unsigned id_ = next_id_++;
 
   friend MutexAcquisitionImpl;
 
@@ -79,9 +79,7 @@ public:
   MutexAcquisitionImplPtr lock_async(actor::ActorImpl* issuer);
   bool try_lock(actor::ActorImpl* issuer);
   void unlock(actor::ActorImpl* issuer);
-
-  MutexImpl* ref();
-  void unref();
+  unsigned get_id() const { return id_; }
 
   actor::ActorImpl* get_owner() const { return owner_; }