+#include "src/kernel/activity/Synchro.hpp"
+#include "src/kernel/actor/ActorImpl.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(ker_synchro, kernel,
+ "Kernel synchronization activity (lock/acquire on a mutex, semaphore or condition)");
+
+namespace simgrid::kernel::activity {
+
+SynchroImpl& SynchroImpl::set_host(s4u::Host* host)
+{
+ host_ = host;
+ return *this;
+}
+SynchroImpl& SynchroImpl::set_timeout(double timeout)
+{
+ timeout_ = timeout;
+ return *this;
+}
+
+SynchroImpl* SynchroImpl::start()
+{
+ model_action_ = host_->get_cpu()->sleep(timeout_);
+ model_action_->set_activity(this);
+ return this;
+}
+
+void SynchroImpl::suspend()
+{
+ /* The suspension of raw synchros is delayed to when the actor is rescheduled. */
+}
+
+void SynchroImpl::resume()