修复多平台编译问题
This commit is contained in:
@@ -36,11 +36,7 @@ void spin_lock(atomic_t* lock, uint32_t pid)
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
#ifdef WIN32
|
||||
MemoryBarrier();
|
||||
#else
|
||||
__asm("pause");
|
||||
#endif
|
||||
atomic_cpu_pause();
|
||||
}
|
||||
|
||||
if (*lock == 0 &&
|
||||
|
||||
@@ -8,4 +8,14 @@ extern void spin_lock(atomic_t *lock, uint32_t pid);
|
||||
|
||||
extern void spin_unlock(atomic_t *lock, uint32_t pid);
|
||||
|
||||
#if defined(WIN32)
|
||||
#define atomic_cpu_pause() MemoryBarrier();
|
||||
#elif defined(__x86_64__)
|
||||
#define atomic_cpu_pause() __asm__ __volatile__("pause")
|
||||
#elif defined(__aarch64__)
|
||||
#define atomic_cpu_pause() __asm__ __volatile__("yield")
|
||||
#else
|
||||
#define atomic_cpu_pause()
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user