2
0
Эх сурвалжийг харах

WinRT: implemented SDL_DetachThread() for WinRT

David Ludwig 11 жил өмнө
parent
commit
7b5887b271

+ 20 - 0
src/thread/stdcpp/SDL_systhread.cpp

@@ -130,6 +130,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()