diff --git a/src/sys/kern/mutex.zig b/src/sys/kern/mutex.zig index 355d8d4..e1df7a0 100644 --- a/src/sys/kern/mutex.zig +++ b/src/sys/kern/mutex.zig @@ -67,12 +67,20 @@ pub const Mutex = struct { /// Returns true on success. pub fn try_acquire(self: *Mutex) bool { const curtd = ke.thread.current(); - return self.state.cmpxchgStrong( + if (self.state.cmpxchgStrong( State.uncontended, State.from(curtd), .acquire, .monotonic, - ) == null; + ) == null) { + if (config.warden) { + kep.warden.acquired(self, self.wd, .Lock); + } + + return true; + } + + return false; } /// Acquire the lock.