瀏覽代碼

Try to use first fit policy on macOS.

Brucey 3 年之前
父節點
當前提交
0e8c8c0b65
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      blitz.mod/blitz_thread.c

+ 5 - 0
blitz.mod/blitz_thread.c

@@ -319,6 +319,7 @@ int bbThreadResume( BBThread *thread ) {
 #define MUTEX_RECURSIVE 1
 #elif __APPLE__
 #define MUTEX_RECURSIVE 2
+#define MUTEX_POLICY_FIRSTFIT 3
 #elif __SWITCH__
 #define MUTEX_RECURSIVE 1
 #elif __HAIKU__
@@ -333,6 +334,10 @@ static pthread_key_t curThreadTls;
 void bbThreadPreStartup(){
 	if( pthread_mutexattr_init( &_bb_mutexattr )<0 ) exit(-1);
 	if( pthread_mutexattr_settype( &_bb_mutexattr,MUTEX_RECURSIVE )<0 ) exit(-1);
+#if __APPLE__
+	// can fail on 10.13 or lower, which we ignore
+	pthread_mutexattr_setpolicy_np(&_bb_mutexattr, MUTEX_POLICY_FIRSTFIT);
+#endif
 }
 
 void bbThreadStartup(){