+ simgrid::kernel::actor::simcall_answered([this]() { pimpl_->broadcast(); });
+}
+
+void intrusive_ptr_add_ref(const ConditionVariable* cond)
+{
+ intrusive_ptr_add_ref(cond->pimpl_);
+}
+
+void intrusive_ptr_release(const ConditionVariable* cond)
+{
+ intrusive_ptr_release(cond->pimpl_);
+}
+
+} // namespace simgrid::s4u
+
+/* **************************** Public C interface *************************** */
+sg_cond_t sg_cond_init()
+{
+ return simgrid::s4u::ConditionVariable::create().detach();
+}
+
+void sg_cond_wait(sg_cond_t cond, sg_mutex_t mutex)
+{
+ cond->wait(mutex);