1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
$NetBSD: patch-base_mutex.cc,v 1.4 2016/05/16 11:51:49 ryoon Exp $
--- base/mutex.cc.orig 2016-05-15 08:11:10.000000000 +0000
+++ base/mutex.cc
@@ -53,7 +53,7 @@ namespace mozc {
// Wrapper for Windows InterlockedCompareExchange
namespace {
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_NACL)
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_NACL) || defined(OS_NETBSD)
// Linux doesn't provide InterlockedCompareExchange-like function.
inline int InterlockedCompareExchange(volatile int *target,
int new_value,
@@ -72,7 +72,7 @@ inline int InterlockedCompareExchange(vo
pthread_mutex_unlock(&lock);
return result;
}
-#endif // OS_LINUX || OS_ANDROID || OS_NACL
+#endif // OS_LINUX || OS_ANDROID || OS_NACL || OS_NETBSD
// Use OSAtomicCompareAndSwapInt on Mac OSX
// http://developer.apple.com/iphone/library/documentation/
@@ -85,7 +85,7 @@ inline int InterlockedCompareExchange(vo
return OSAtomicCompareAndSwapInt(old_value, new_value, target)
? old_value : *target;
}
-#endif // OX_MACOSX
+#endif // OS_MACOSX
} // namespace
@@ -183,7 +183,7 @@ Mutex::Mutex() {
// PTHREAD_MUTEX_RECURSIVE_NP but Mac OS X 10.5 does not
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_NETBSD)
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_NACL)
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
|