From 3a033cf79b7b4d23068a652ac68b499045f7b633 Mon Sep 17 00:00:00 2001 From: gbeauche <> Date: Thu, 20 May 2004 17:19:59 +0000 Subject: [PATCH] atomic spcflags --- SheepShaver/src/kpx_cpu/src/cpu/spcflags.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/SheepShaver/src/kpx_cpu/src/cpu/spcflags.hpp b/SheepShaver/src/kpx_cpu/src/cpu/spcflags.hpp index 19321b36..155c630a 100644 --- a/SheepShaver/src/kpx_cpu/src/cpu/spcflags.hpp +++ b/SheepShaver/src/kpx_cpu/src/cpu/spcflags.hpp @@ -36,11 +36,12 @@ enum { class basic_spcflags { uint32 mask; + spinlock_t lock; public: basic_spcflags() - : mask(0) + : mask(0), lock(SPIN_LOCK_UNLOCKED) { } bool empty() const @@ -50,16 +51,16 @@ public: { return (mask & v); } void init(uint32 v) - { mask = v; } + { spin_lock(&lock); mask = v; spin_unlock(&lock); } uint32 get() const { return mask; } void set(uint32 v) - { mask |= v; } + { spin_lock(&lock); mask |= v; spin_unlock(&lock); } void clear(uint32 v) - { mask &= ~v; } + { spin_lock(&lock); mask &= ~v; spin_unlock(&lock); } }; #endif /* SPCFLAGS_H */