| Index: runtime/vm/os_thread_android.cc
|
| diff --git a/runtime/vm/os_thread_android.cc b/runtime/vm/os_thread_android.cc
|
| index 377fd94807cc443b79c7fdf0fd8cc2bdcfc7b1bd..1f8de35eddac8e76db5ba4e95b7e106a20e3c4a7 100644
|
| --- a/runtime/vm/os_thread_android.cc
|
| +++ b/runtime/vm/os_thread_android.cc
|
| @@ -101,9 +101,6 @@ int OSThread::Start(ThreadStartFunction function, uword parameter) {
|
| int result = pthread_attr_init(&attr);
|
| RETURN_ON_PTHREAD_FAILURE(result);
|
|
|
| - result = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
|
| - RETURN_ON_PTHREAD_FAILURE(result);
|
| -
|
| result = pthread_attr_setstacksize(&attr, OSThread::GetMaxStackSize());
|
| RETURN_ON_PTHREAD_FAILURE(result);
|
|
|
| @@ -123,6 +120,7 @@ int OSThread::Start(ThreadStartFunction function, uword parameter) {
|
| ThreadLocalKey OSThread::kUnsetThreadLocalKey =
|
| static_cast<pthread_key_t>(-1);
|
| ThreadId OSThread::kInvalidThreadId = static_cast<ThreadId>(0);
|
| +ThreadJoinId OSThread::kInvalidThreadJoinId = static_cast<ThreadJoinId>(0);
|
|
|
| ThreadLocalKey OSThread::CreateThreadLocal(ThreadDestructor destructor) {
|
| pthread_key_t key = kUnsetThreadLocalKey;
|
| @@ -158,8 +156,13 @@ ThreadId OSThread::GetCurrentThreadId() {
|
| }
|
|
|
|
|
| -bool OSThread::Join(ThreadId id) {
|
| - return false;
|
| +ThreadJoinId OSThread::GetCurrentThreadJoinId() {
|
| + return pthread_self();
|
| +}
|
| +
|
| +
|
| +void OSThread::Join(ThreadJoinId id) {
|
| + ASSERT(pthread_join(id, NULL) == 0);
|
| }
|
|
|
|
|
|
|