class XBT_PUBLIC Mutex {
friend ConditionVariable;
friend simgrid::kernel::activity::MutexImpl;
- simgrid::kernel::activity::MutexImpl* mutex_;
- explicit Mutex(simgrid::kernel::activity::MutexImpl * mutex) : mutex_(mutex) {}
+ simgrid::kernel::activity::MutexImpl* pimpl_;
+ explicit Mutex(simgrid::kernel::activity::MutexImpl* mutex) : pimpl_(mutex) {}
/* refcounting */
friend XBT_PUBLIC void intrusive_ptr_add_ref(Mutex* mutex);
namespace kernel {
namespace activity {
-MutexImpl::MutexImpl() : mutex_(this)
+MutexImpl::MutexImpl() : piface_(this)
{
XBT_IN("(%p)", this);
XBT_OUT();
delete mutex;
}
- simgrid::s4u::Mutex& mutex() { return mutex_; }
+ simgrid::s4u::Mutex& mutex() { return piface_; }
private:
std::atomic_int_fast32_t refcount_{1};
- simgrid::s4u::Mutex mutex_;
+ simgrid::s4u::Mutex piface_;
};
}
}
*/
void ConditionVariable::wait(MutexPtr lock)
{
- simcall_cond_wait(cond_, lock->mutex_);
+ simcall_cond_wait(cond_, lock->pimpl_);
}
void ConditionVariable::wait(std::unique_lock<Mutex>& lock)
{
- simcall_cond_wait(cond_, lock.mutex()->mutex_);
+ simcall_cond_wait(cond_, lock.mutex()->pimpl_);
}
std::cv_status s4u::ConditionVariable::wait_for(std::unique_lock<Mutex>& lock, double timeout)
if (timeout < 0)
timeout = 0.0;
- if (simcall_cond_wait_timeout(cond_, lock.mutex()->mutex_, timeout)) {
+ if (simcall_cond_wait_timeout(cond_, lock.mutex()->pimpl_, timeout)) {
// If we reached the timeout, we have to take the lock again:
lock.mutex()->lock();
return std::cv_status::timeout;
/** @brief Blocks the calling actor until the mutex can be obtained */
void Mutex::lock()
{
- simcall_mutex_lock(mutex_);
+ simcall_mutex_lock(pimpl_);
}
/** @brief Release the ownership of the mutex, unleashing a blocked actor (if any)
*/
void Mutex::unlock()
{
- simcall_mutex_unlock(mutex_);
+ simcall_mutex_unlock(pimpl_);
}
/** @brief Acquire the mutex if it's free, and return false (without blocking) if not */
bool Mutex::try_lock()
{
- return simcall_mutex_trylock(mutex_);
+ return simcall_mutex_trylock(pimpl_);
}
/** @brief Create a new mutex
void intrusive_ptr_add_ref(Mutex* mutex)
{
xbt_assert(mutex);
- SIMIX_mutex_ref(mutex->mutex_);
+ SIMIX_mutex_ref(mutex->pimpl_);
}
void intrusive_ptr_release(Mutex* mutex)
{
xbt_assert(mutex);
- SIMIX_mutex_unref(mutex->mutex_);
+ SIMIX_mutex_unref(mutex->pimpl_);
}
} // namespace s4u
} // namespace simgrid