From 222e031aa69b85a660b37e558115375d44ec3f68 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Sat, 13 Mar 2021 22:25:04 +0100 Subject: [PATCH] Use ConditionVariable::create() for sg_cond_init(). --- include/simgrid/s4u/ConditionVariable.hpp | 2 +- src/s4u/s4u_ConditionVariable.cpp | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/include/simgrid/s4u/ConditionVariable.hpp b/include/simgrid/s4u/ConditionVariable.hpp index 934780b6a4..e18b846020 100644 --- a/include/simgrid/s4u/ConditionVariable.hpp +++ b/include/simgrid/s4u/ConditionVariable.hpp @@ -28,7 +28,6 @@ private: friend kernel::activity::ConditionVariableImpl; kernel::activity::ConditionVariableImpl* const pimpl_; -public: #ifndef DOXYGEN explicit ConditionVariable(kernel::activity::ConditionVariableImpl* cond) : pimpl_(cond) {} @@ -39,6 +38,7 @@ public: friend XBT_PUBLIC void intrusive_ptr_release(const ConditionVariable* cond); #endif +public: /** Create a new condition variable and return a smart pointer * * @beginrst diff --git a/src/s4u/s4u_ConditionVariable.cpp b/src/s4u/s4u_ConditionVariable.cpp index b8f04376f0..102d683ffb 100644 --- a/src/s4u/s4u_ConditionVariable.cpp +++ b/src/s4u/s4u_ConditionVariable.cpp @@ -91,10 +91,7 @@ void intrusive_ptr_release(const ConditionVariable* cond) /* **************************** Public C interface *************************** */ sg_cond_t sg_cond_init() { - simgrid::kernel::activity::ConditionVariableImpl* cond = - simgrid::kernel::actor::simcall([] { return new simgrid::kernel::activity::ConditionVariableImpl(); }); - - return new simgrid::s4u::ConditionVariable(cond); + return simgrid::s4u::ConditionVariable::create().detach(); } void sg_cond_wait(sg_cond_t cond, sg_mutex_t mutex) @@ -120,5 +117,5 @@ void sg_cond_notify_all(sg_cond_t cond) void sg_cond_destroy(const_sg_cond_t cond) { - delete cond; + intrusive_ptr_release(cond); } -- 2.20.1