+/* -------- Acquisition -------- */
+
+bool MutexAcquisitionImpl::test(actor::ActorImpl*)
+{
+ return mutex_->owner_ == issuer_;
+}
+void MutexAcquisitionImpl::wait_for(actor::ActorImpl* issuer, double timeout)
+{
+ xbt_assert(mutex_->owner_ != nullptr); // it was locked either by someone else or by me during the lock_async
+ xbt_assert(issuer == issuer_, "Cannot wait on acquisitions created by another actor (id %ld)", issuer_->get_pid());
+ xbt_assert(timeout < 0, "Timeouts on mutex acquisitions are not implemented yet.");
+
+ this->register_simcall(&issuer_->simcall_); // Block on that acquisition
+
+ if (mutex_->get_owner() == issuer_) { // I'm the owner
+ finish();
+ } else {
+ // Already in the queue
+ }
+}
+void MutexAcquisitionImpl::finish()