ソースを参照

Fixed atomic ops for Linux.

woollybah 5 年 前
コミット
1d2bbdccc5
1 ファイル変更2 行追加2 行削除
  1. 2 2
      blitz.mod/blitz_thread.c

+ 2 - 2
blitz.mod/blitz_thread.c

@@ -423,7 +423,7 @@ int bbThreadResume( BBThread *thread ){
 int bbAtomicCAS( volatile int *addr,int old,int new_val ){
 int bbAtomicCAS( volatile int *addr,int old,int new_val ){
 #if !defined(__ANDROID__) && !defined(_WIN32)
 #if !defined(__ANDROID__) && !defined(_WIN32)
 #	ifndef __APPLE__
 #	ifndef __APPLE__
-		return AO_compare_and_swap(addr, old, new_val);
+		return __sync_bool_compare_and_swap(addr, old, new_val);
 #	else
 #	else
 		return OSAtomicCompareAndSwap32(old, new_val, addr);
 		return OSAtomicCompareAndSwap32(old, new_val, addr);
 #	endif
 #	endif
@@ -435,7 +435,7 @@ int bbAtomicCAS( volatile int *addr,int old,int new_val ){
 int bbAtomicAdd( volatile int *p,int incr ){
 int bbAtomicAdd( volatile int *p,int incr ){
 #if !defined(__ANDROID__) && !defined(_WIN32)
 #if !defined(__ANDROID__) && !defined(_WIN32)
 #	ifndef __APPLE__
 #	ifndef __APPLE__
-		return AO_fetch_and_add((AO_t*)p, incr);
+		return __sync_fetch_and_add(p, incr);
 #	else
 #	else
 		return OSAtomicAdd32(incr, p);
 		return OSAtomicAdd32(incr, p);
 #	endif
 #	endif