-XBT_PRIVATE smx_cond_t SIMIX_cond_init();
-XBT_PRIVATE void SIMIX_cond_broadcast(smx_cond_t cond);
-XBT_PRIVATE void SIMIX_cond_signal(smx_cond_t cond);
-XBT_PRIVATE void intrusive_ptr_add_ref(s_smx_cond_t* cond);
-XBT_PRIVATE void intrusive_ptr_release(s_smx_cond_t* cond);
+public:
+ ConditionVariableImpl() : piface_(this){};
+
+ void remove_sleeping_actor(actor::ActorImpl& actor) { xbt::intrusive_erase(sleeping_, actor); }
+ const s4u::ConditionVariable* get_iface() const { return &piface_; }
+ s4u::ConditionVariable* get_iface() { return &piface_; }
+ void broadcast();
+ void signal();
+ void wait(MutexImpl* mutex, double timeout, actor::ActorImpl* issuer);
+};
+} // namespace simgrid::kernel::activity