From 417c46c0405bef25ab8ef6b7cf227c7affea7a34 Mon Sep 17 00:00:00 2001 From: Matheus Date: Fri, 9 Sep 2022 18:14:14 -0300 Subject: [PATCH] spinlock: try and acquire func --- src/arch/x86_64/include/arch/spinlock.h | 6 ++++++ 1 file changed, 6 insertions(+) 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; }