| Index: runtime/vm/os_thread_win.cc
|
| diff --git a/runtime/vm/os_thread_win.cc b/runtime/vm/os_thread_win.cc
|
| index 126594910b55bc0cae7d1169ee3b59f25039a100..90106e6a55ee4cda2a7e2b132814fd12ad0803af 100644
|
| --- a/runtime/vm/os_thread_win.cc
|
| +++ b/runtime/vm/os_thread_win.cc
|
| @@ -71,6 +71,7 @@ int OSThread::Start(ThreadStartFunction function, uword parameter) {
|
|
|
| ThreadLocalKey OSThread::kUnsetThreadLocalKey = TLS_OUT_OF_INDEXES;
|
| ThreadId OSThread::kInvalidThreadId = 0;
|
| +ThreadJoinId OSThread::kInvalidThreadJoinId = 0;
|
|
|
| ThreadLocalKey OSThread::CreateThreadLocal(ThreadDestructor unused) {
|
| ThreadLocalKey key = TlsAlloc();
|
| @@ -101,14 +102,17 @@ ThreadId OSThread::GetCurrentThreadId() {
|
| }
|
|
|
|
|
| -bool OSThread::Join(ThreadId id) {
|
| +ThreadJoinId OSThread::GetCurrentThreadJoinId() {
|
| + return ::GetCurrentThreadId();
|
| +}
|
| +
|
| +
|
| +void OSThread::Join(ThreadJoinId id) {
|
| HANDLE handle = OpenThread(SYNCHRONIZE, false, id);
|
| - if (handle == INVALID_HANDLE_VALUE) {
|
| - return false;
|
| - }
|
| + ASSERT(handle != INVALID_HANDLE_VALUE);
|
| DWORD res = WaitForSingleObject(handle, INFINITE);
|
| CloseHandle(handle);
|
| - return res == WAIT_OBJECT_0;
|
| + ASSERT(res == WAIT_OBJECT_0);
|
| }
|
|
|
|
|
|
|