#ifndef MOSSROSE_MUTEX_H #define MOSSROSE_MUTEX_H #ifdef WIN32 #include typedef HANDLE mossrose_mutex_t; #else #include typedef pthread_mutex_t mossrose_mutex_t; #endif /* initialize a mutex */ void mossrose_mutex_init(mossrose_mutex_t *mutex); /* lock a mutex, hanging until locked */ void mossrose_mutex_lock(mossrose_mutex_t *mutex); /* attempt to lock a mutex. returns 0 on success and 1 otherwise */ int mossrose_mutex_trylock(mossrose_mutex_t *mutex); /* unlock a mutex */ void mossrose_mutex_unlock(mossrose_mutex_t *mutex); /* destroy a mutex */ void mossrose_mutex_destroy(mossrose_mutex_t *mutex); #endif