From 584b062a302ca10ecab4488a473440db7173bb2a Mon Sep 17 00:00:00 2001 From: Jim Price Date: Wed, 26 Jul 2023 06:19:52 -0700 Subject: [PATCH] Fix counting in SingleThreadedRwLock's tryLockShared (#16560) Additionally we add RwLock to Thread.zig's list of tests --- lib/std/Thread.zig | 1 + lib/std/Thread/RwLock.zig | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 99e2feb4cf..64815bde72 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -1438,6 +1438,7 @@ test { _ = Mutex; _ = Semaphore; _ = Condition; + _ = RwLock; } fn testIncrementNotify(value: *usize, event: *ResetEvent) void { diff --git a/lib/std/Thread/RwLock.zig b/lib/std/Thread/RwLock.zig index e78695a1d8..e77db10abb 100644 --- a/lib/std/Thread/RwLock.zig +++ b/lib/std/Thread/RwLock.zig @@ -95,7 +95,11 @@ pub const SingleThreadedRwLock = struct { rwl.shared_count = 1; return true; }, - .locked_exclusive, .locked_shared => return false, + .locked_shared => { + rwl.shared_count += 1; + return true; + }, + .locked_exclusive => return false, } }