diff --git a/src/arch/x86_64/include/arch/spinlock.h b/src/arch/x86_64/include/arch/spinlock.h index 7638a3ea..3b5cece4 100644 --- a/src/arch/x86_64/include/arch/spinlock.h +++ b/src/arch/x86_64/include/arch/spinlock.h @@ -1,10 +1,16 @@ #ifndef _SPINLOCK_H_INCLUDE #define _SPINLOCK_H_INCLUDE +#include + static inline void spinlock_acquire(int *lock){ while(!__sync_bool_compare_and_swap(lock, 0, 1)) asm("pause"); } +static inline bool spinlock_trytoacquire(int *lock){ + return __sync_bool_compare_and_swap(lock, 0, 1); +} + static inline void spinlock_release(int *lock){ *lock = 0; }