Commit 7b5887b271bb29986bbc83cbe505787876259767

David Ludwig 2013-11-28T22:24:13

WinRT: implemented SDL_DetachThread() for WinRT

diff --git a/src/thread/stdcpp/SDL_systhread.cpp b/src/thread/stdcpp/SDL_systhread.cpp
index 02fcf76..6e043b4 100644
--- a/src/thread/stdcpp/SDL_systhread.cpp
+++ b/src/thread/stdcpp/SDL_systhread.cpp
@@ -131,6 +131,26 @@ SDL_SYS_WaitThread(SDL_Thread * thread)
 }
 
 extern "C"
+void
+SDL_SYS_DetachThread(SDL_Thread * thread)
+{
+    if ( ! thread) {
+        return;
+    }
+
+    try {
+        std::thread * cpp_thread = (std::thread *) thread->handle;
+        if (cpp_thread->joinable()) {
+            cpp_thread->detach();
+        }
+    } catch (std::system_error &) {
+        // An error occurred when detaching the thread.  SDL_DetachThread does not,
+        // however, seem to provide a means to report errors to its callers
+        // though!
+    }
+}
+
+extern "C"
 SDL_TLSData *
 SDL_SYS_GetTLSData()
 {