#define MAX(a,b) ((a) > (b) ? (a) : (b)) #define LOCK_NAME "ck_anderson" #define LOCK_DEFINE static ck_spinlock_anderson_t lock CK_CC_CACHELINE #define LOCK_STATE ck_spinlock_anderson_thread_t *nad = NULL #define LOCK ck_spinlock_anderson_lock(&lock, &nad) #define UNLOCK ck_spinlock_anderson_unlock(&lock, nad) #define LOCK_INIT ck_spinlock_anderson_init(&lock, malloc(MAX(64,sizeof(ck_spinlock_anderson_thread_t)) * nthr), nthr) #define LOCKED ck_spinlock_anderson_locked(&lock) #define NO_LOCAL