win32: close handles of threads that have been joined
After the thread terminates, the handle to the original thread should be closed. This change makes win32_pthread_join POSIX compliant. Signed-off-by: Seija Kijin <doremylover123@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
23a6a12dfa
commit
238a9dfe86
@ -42,10 +42,13 @@ int win32_pthread_join(pthread_t *thread, void **value_ptr)
|
|||||||
case WAIT_OBJECT_0:
|
case WAIT_OBJECT_0:
|
||||||
if (value_ptr)
|
if (value_ptr)
|
||||||
*value_ptr = thread->arg;
|
*value_ptr = thread->arg;
|
||||||
|
CloseHandle(thread->handle);
|
||||||
return 0;
|
return 0;
|
||||||
case WAIT_ABANDONED:
|
case WAIT_ABANDONED:
|
||||||
|
CloseHandle(thread->handle);
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
default:
|
default:
|
||||||
|
/* the wait failed, so do not detach */
|
||||||
return err_win_to_posix(GetLastError());
|
return err_win_to_posix(GetLastError());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user