update Atomic of apple macOS/iOS

This commit is contained in:
hyzboy 2019-12-18 15:25:31 +08:00
parent 51be93f2d7
commit 113a3f8163
2 changed files with 7 additions and 7 deletions

View File

@ -1,4 +1,4 @@
#ifndef HGL_THREAD_ATOMIC_OSX_INCLUDE
#ifndef HGL_THREAD_ATOMIC_OSX_INCLUDE
#define HGL_THREAD_ATOMIC_OSX_INCLUDE
#include<libkern/OSAtomic.h>
@ -36,12 +36,12 @@ namespace hgl
inline aint operator = (cavint new_value) {value=new_value;return value;}
inline aint operator ++ () {return OSAtomicIncrement32(&value);}
inline aint operator -- () {return OSAtomicDecrement32(&value);}
inline aint operator += (cavint add_value) {return;}
inline aint operator -= (cavint sub_value) {return;}
inline aint operator += (cavint add_value) {return OSAtomicAdd32(value,&add_value);}
inline aint operator -= (cavint sub_value) {cavint sv=-sub_value;return OSAtomicAdd32(value,&sv);}
inline aint operator &= (cavint v) {return operator=(value &=v);}
inline aint operator |= (cavint v) {return operator=(value |=v);}
inline aint operator ^= (cavint v) {return operator=(value ^=v);}
inline aint operator &= (cavint v) {return OSAtomicAnd32(value,&v);}
inline aint operator |= (cavint v) {return OSAtomicOr32Orig(value,&v);}
inline aint operator ^= (cavint v) {return OSAtomicXor32Orig(value,&v);}
inline aint operator ++ (int) {aint ret=value;operator++();return ret;}//后置++
inline aint operator -- (int) {volatile T ret=value;operator--();return ret;}//后置--

View File

@ -1,4 +1,4 @@
#ifndef HGL_THREAD_ATOMIC_WINDOWS_INCLUDE
#ifndef HGL_THREAD_ATOMIC_WINDOWS_INCLUDE
#define HGL_THREAD_ATOMIC_WINDOWS_INCLUDE
#include<windows.h>