| Index: runtime/platform/thread_macos.cc
|
| diff --git a/runtime/platform/thread_macos.cc b/runtime/platform/thread_macos.cc
|
| index 6fa80ce738f5a31f5bd92d6e4ff13d07e499ffdc..4dd208bac3ffcc8b83fb1573813fce9ea2c01991 100644
|
| --- a/runtime/platform/thread_macos.cc
|
| +++ b/runtime/platform/thread_macos.cc
|
| @@ -87,6 +87,32 @@ int Thread::Start(ThreadStartFunction function, uword parameter) {
|
| }
|
|
|
|
|
| +ThreadLocalKey Thread::kUnsetThreadLocalKey = static_cast<pthread_key_t>(-1);
|
| +
|
| +
|
| +ThreadLocalKey Thread::CreateThreadLocal() {
|
| + pthread_key_t key = kUnsetThreadLocalKey;
|
| + int result = pthread_key_create(&key, NULL);
|
| + VALIDATE_PTHREAD_RESULT(result);
|
| + ASSERT(key != kUnsetThreadLocalKey);
|
| + return key;
|
| +}
|
| +
|
| +
|
| +void Thread::DeleteThreadLocal(ThreadLocalKey key) {
|
| + ASSERT(key != kUnsetThreadLocalKey);
|
| + int result = pthread_key_delete(key);
|
| + VALIDATE_PTHREAD_RESULT(result);
|
| +}
|
| +
|
| +
|
| +void Thread::SetThreadLocal(ThreadLocalKey key, uword value) {
|
| + ASSERT(key != kUnsetThreadLocalKey);
|
| + int result = pthread_setspecific(key, reinterpret_cast<void*>(value));
|
| + VALIDATE_PTHREAD_RESULT(result);
|
| +}
|
| +
|
| +
|
| Mutex::Mutex() {
|
| pthread_mutexattr_t attr;
|
| int result = pthread_mutexattr_init(&attr);
|
|
|