Explorar el Código

WinRT: implemented SDL_DetachThread() for WinRT

David Ludwig hace 11 años
padre
commit
7b5887b271
Se han modificado 1 ficheros con 20 adiciones y 0 borrados
  1. 20 0
      src/thread/stdcpp/SDL_systhread.cpp

+ 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()