Browse Source

Merge pull request #507 from Azaezel/alpha40/pthreadPunishment

adress #501 - thread oversight.
Brian Roberts 4 years ago
parent
commit
8d2e806413
1 changed files with 8 additions and 2 deletions
  1. 8 2
      Engine/lib/convexDecomp/NvThreadConfig.cpp

+ 8 - 2
Engine/lib/convexDecomp/NvThreadConfig.cpp

@@ -133,9 +133,15 @@ void tc_spinloop()
    // Pause would do nothing on the Xbox. Threads are not scheduled.
 #elif defined( _WIN64 )
    YieldProcessor( );
-#elif defined( __APPLE__ )||(__linux__)
+#elif defined( __APPLE__ )
    pthread_yield_np();
-#else
+#elif defined(__linux__)
+   #if defined(_POSIX_PRIORITY_SCHEDULING)
+      sched_yield();
+   #else
+      asm("pause");
+   #endif
+#elif
    __asm { pause };
 #endif
 }