aboutsummaryrefslogtreecommitdiff
path: root/dep/src/zthread/linux
diff options
context:
space:
mode:
Diffstat (limited to 'dep/src/zthread/linux')
-rw-r--r--dep/src/zthread/linux/AtomicFastLock.h26
-rw-r--r--dep/src/zthread/linux/FastRecursiveLock.h26
2 files changed, 26 insertions, 26 deletions
diff --git a/dep/src/zthread/linux/AtomicFastLock.h b/dep/src/zthread/linux/AtomicFastLock.h
index b9aa1babcd6..a416fef67cb 100644
--- a/dep/src/zthread/linux/AtomicFastLock.h
+++ b/dep/src/zthread/linux/AtomicFastLock.h
@@ -44,31 +44,31 @@ namespace ZThread {
* This implementation of a FastLock uses the atomic operations that
* linux provides with its kernel sources. This demonstrates how to implement
* a spinlock with a decrement and test primative.
- */
+ */
class FastLock : private NonCopyable {
-
+
atomic_t _value;
-
+
#if !defined(NDEBUG)
pthread_t _owner;
#endif
public:
-
+
inline FastLock() {
-
+
atomic_t tmp = ATOMIC_INIT(1);
_value = tmp;
}
-
+
inline ~FastLock() {
assert(atomic_read(&_value) == 1);
assert(_owner == 0);
}
-
+
inline void acquire() {
while(!atomic_dec_and_test(&_value)) {
@@ -77,14 +77,14 @@ public:
ThreadOps::yield();
}
-
+
#if !defined(NDEBUG)
_owner = pthread_self();
#endif
}
inline void release() {
-
+
#if !defined(NDEBUG)
assert(pthread_equal(_owner, pthread_self()) != 0);
#endif
@@ -93,9 +93,9 @@ public:
_owner = 0;
}
-
+
inline bool tryAcquire(unsigned long timeout=0) {
-
+
bool wasLocked = atomic_dec_and_test(&_value);
if(!wasLocked)
atomic_inc(&_value);
@@ -106,9 +106,9 @@ public:
#endif
return wasLocked;
-
+
}
-
+
}; /* FastLock */
diff --git a/dep/src/zthread/linux/FastRecursiveLock.h b/dep/src/zthread/linux/FastRecursiveLock.h
index d253652cb53..a9a74d21521 100644
--- a/dep/src/zthread/linux/FastRecursiveLock.h
+++ b/dep/src/zthread/linux/FastRecursiveLock.h
@@ -36,45 +36,45 @@ namespace ZThread {
* @version 2.2.0
*
* This implementation of a FastRecursiveLock uses the recursive mutex
- * that linux pthreads provides.
- */
+ * that linux pthreads provides.
+ */
class FastRecursiveLock : private NonCopyable {
-
+
pthread_mutex_t _mtx;
-
+
public:
-
+
inline FastRecursiveLock() {
-
+
static const pthread_mutexattr_t attr = { PTHREAD_MUTEX_RECURSIVE_NP };
pthread_mutex_init(&_mtx, &attr);
}
-
+
inline ~FastRecursiveLock() {
pthread_mutex_destroy(&_mtx);
}
-
+
inline void acquire() {
-
+
pthread_mutex_lock(&_mtx);
}
inline void release() {
-
+
pthread_mutex_unlock(&_mtx);
-
+
}
-
+
inline bool tryAcquire(unsigned long timeout=0) {
return (pthread_mutex_trylock(&_mtx) == 0);
}
-
+
}; /* FastRecursiveLock */