+
+/* **************************** Public C interface *************************** */
+sg_mutex_t sg_mutex_init()
+{
+ return simgrid::s4u::Mutex::create().detach();
+}
+
+void sg_mutex_lock(sg_mutex_t mutex)
+{
+ mutex->lock();
+}
+
+void sg_mutex_unlock(sg_mutex_t mutex)
+{
+ mutex->unlock();
+}
+
+int sg_mutex_try_lock(sg_mutex_t mutex)
+{
+ return mutex->try_lock();
+}
+
+void sg_mutex_destroy(const_sg_mutex_t mutex)
+{
+ intrusive_ptr_release(mutex);
+}