#include <pthread.h>
-extern pthread_mutex_t _cas_lock;
-extern pthread_mutex_t _mb_lock;
+#include "threads/mutex.h"
+
+
+extern mutex_t _cas_lock;
+extern mutex_t _mb_lock;
static inline long compare_and_swap(volatile long *p, long oldval, long newval)
{
long ret;
- pthread_mutex_lock(&_cas_lock);
+ mutex_lock(&_cas_lock);
/* do the compare-and-swap */
if (oldval == ret)
*p = newval;
- pthread_mutex_unlock(&_cas_lock);
+ mutex_unlock(&_cas_lock);
return ret;
}
-#define MEMORY_BARRIER() (pthread_mutex_lock(&_mb_lock), \
- pthread_mutex_unlock(&_mb_lock))
+#define MEMORY_BARRIER() (mutex_lock(&_mb_lock), \
+ mutex_unlock(&_mb_lock))
#define STORE_ORDER_BARRIER() MEMORY_BARRIER()
#define MEMORY_BARRIER_AFTER_ATOMIC() /* nothing */