38 #include "blocxx/BLOCXX_config.h"
41 #if defined(BLOCXX_USE_PTHREAD_SPIN_LOCK_ATOMIC_OPS)
49 pthread_spin_init(&spinlock, 0);
54 pthread_spin_init(&spinlock, 0);
58 pthread_spin_lock(&v.spinlock);
60 pthread_spin_unlock(&v.spinlock);
64 pthread_spin_lock(&v.spinlock);
66 bool b = ((v.val == 0) ?
true :
false) ;
67 pthread_spin_unlock(&v.spinlock);
76 pthread_spin_lock(&v.spinlock);
78 pthread_spin_unlock(&v.spinlock);
83 #elif defined(BLOCXX_USE_BLOCXX_DEFAULT_ATOMIC_OPS)
94 static Mutex* guard = 0;
95 static OnceFlag g_once = BLOCXX_ONCE_INIT;
96 static void initGuard()
109 MutexLock lock(*guard);
115 MutexLock lock(*guard);
121 MutexLock lock(*guard);