+/**
+ * \file
+ */
#ifndef __MONO_COOP_MUTEX_H__
#define __MONO_COOP_MUTEX_H__
mono_cond_t c;
};
-static inline gint
+static inline void
mono_coop_mutex_init (MonoCoopMutex *mutex)
{
- return mono_os_mutex_init (&mutex->m);
+ mono_os_mutex_init (&mutex->m);
}
-static inline gint
+static inline void
mono_coop_mutex_init_recursive (MonoCoopMutex *mutex)
{
- return mono_os_mutex_init_recursive (&mutex->m);
+ mono_os_mutex_init_recursive (&mutex->m);
}
-static inline gint
+static inline void
mono_coop_mutex_destroy (MonoCoopMutex *mutex)
{
- return mono_os_mutex_destroy (&mutex->m);
+ mono_os_mutex_destroy (&mutex->m);
}
-static inline gint
+static inline void
mono_coop_mutex_lock (MonoCoopMutex *mutex)
{
- gint res;
-
/* Avoid thread state switch if lock is not contended */
if (mono_os_mutex_trylock (&mutex->m) == 0)
- return 0;
+ return;
MONO_ENTER_GC_SAFE;
- res = mono_os_mutex_lock (&mutex->m);
+ mono_os_mutex_lock (&mutex->m);
MONO_EXIT_GC_SAFE;
-
- return res;
}
static inline gint
return mono_os_mutex_trylock (&mutex->m);
}
-static inline gint
+static inline void
mono_coop_mutex_unlock (MonoCoopMutex *mutex)
{
- return mono_os_mutex_unlock (&mutex->m);
+ mono_os_mutex_unlock (&mutex->m);
}
-static inline gint
+static inline void
mono_coop_cond_init (MonoCoopCond *cond)
{
- return mono_os_cond_init (&cond->c);
+ mono_os_cond_init (&cond->c);
}
-static inline gint
+static inline void
mono_coop_cond_destroy (MonoCoopCond *cond)
{
- return mono_os_cond_destroy (&cond->c);
+ mono_os_cond_destroy (&cond->c);
}
-static inline gint
+static inline void
mono_coop_cond_wait (MonoCoopCond *cond, MonoCoopMutex *mutex)
{
- gint res;
-
MONO_ENTER_GC_SAFE;
- res = mono_os_cond_wait (&cond->c, &mutex->m);
+ mono_os_cond_wait (&cond->c, &mutex->m);
MONO_EXIT_GC_SAFE;
-
- return res;
}
static inline gint
return res;
}
-static inline gint
+static inline void
mono_coop_cond_signal (MonoCoopCond *cond)
{
- return mono_os_cond_signal (&cond->c);
+ mono_os_cond_signal (&cond->c);
}
-static inline gint
+static inline void
mono_coop_cond_broadcast (MonoCoopCond *cond)
{
- return mono_os_cond_broadcast (&cond->c);
+ mono_os_cond_broadcast (&cond->c);
}
G_END_DECLS