diff options
Diffstat (limited to 'kern/spinlock.h')
-rw-r--r-- | kern/spinlock.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/kern/spinlock.h b/kern/spinlock.h index dd98cbf..30fc1e5 100644 --- a/kern/spinlock.h +++ b/kern/spinlock.h @@ -36,6 +36,21 @@ struct spinlock; #define spinlock_assert_locked(lock) assert((lock)->value != SPINLOCK_UNLOCKED) +#ifdef SPINLOCK_TRACK_OWNER + +static inline void +spinlock_transfer_owner(struct spinlock *lock, struct thread *owner) +{ + assert(lock->owner == thread_self()); + lock->owner = owner; +} + +#else /* SPINLOCK_TRACK_OWNER */ + +#define spinlock_transfer_owner(lock, owner) + +#endif /* SPINLOCK_TRACK_OWNER */ + /* * Initialize a spin lock. */ |