From fb9aac95d131fe62737adaffeb9fae8306c6d6eb Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 14 Feb 2019 16:54:40 +0000 Subject: [PATCH] Add function to detach from a thread --- renderdoc/os/os_specific.h | 1 + renderdoc/os/posix/posix_threading.cpp | 4 ++++ renderdoc/os/win32/win32_threading.cpp | 7 +++++++ 3 files changed, 12 insertions(+) diff --git a/renderdoc/os/os_specific.h b/renderdoc/os/os_specific.h index cffc867fe..373cdc85a 100644 --- a/renderdoc/os/os_specific.h +++ b/renderdoc/os/os_specific.h @@ -147,6 +147,7 @@ typedef uint64_t ThreadHandle; ThreadHandle CreateThread(std::function entryFunc); uint64_t GetCurrentID(); void JoinThread(ThreadHandle handle); +void DetachThread(ThreadHandle handle); void CloseThread(ThreadHandle handle); void Sleep(uint32_t milliseconds); diff --git a/renderdoc/os/posix/posix_threading.cpp b/renderdoc/os/posix/posix_threading.cpp index 9f9108336..cc092ee4e 100644 --- a/renderdoc/os/posix/posix_threading.cpp +++ b/renderdoc/os/posix/posix_threading.cpp @@ -282,6 +282,10 @@ void JoinThread(ThreadHandle handle) { pthread_join((pthread_t)handle, NULL); } +void DetachThread(ThreadHandle handle) +{ + pthread_detach((pthread_t)handle); +} void CloseThread(ThreadHandle handle) { } diff --git a/renderdoc/os/win32/win32_threading.cpp b/renderdoc/os/win32/win32_threading.cpp index 4f7996e42..ce4bd0c32 100644 --- a/renderdoc/os/win32/win32_threading.cpp +++ b/renderdoc/os/win32/win32_threading.cpp @@ -273,6 +273,13 @@ void JoinThread(ThreadHandle handle) WaitForSingleObject((HANDLE)handle, INFINITE); } +void DetachThread(ThreadHandle handle) +{ + if(handle == 0) + return; + CloseHandle((HANDLE)handle); +} + void CloseThread(ThreadHandle handle) { if(handle == 0)