* 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;
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;
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_; }