Skip to content

Commit 88ba645

Browse files
lmbbradfitz
authored andcommitted
sync: enable profiling of RWMutex
Include reader / writer interactions of RWMutex in the mutex profile. Writer contention is already included in the profile, since a plain Mutex is used to control exclusion. Fixes #18496 Change-Id: Ib0dc1ffa0fd5e6d964a6f7764d7f09556eb63f00 Reviewed-on: https://go-review.googlesource.com/87095 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Peter Weinberger <pjw@google.com>
1 parent 8cb4327 commit 88ba645

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/sync/rwmutex.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (rw *RWMutex) RLock() {
4747
}
4848
if atomic.AddInt32(&rw.readerCount, 1) < 0 {
4949
// A writer is pending, wait for it.
50-
runtime_Semacquire(&rw.readerSem)
50+
runtime_SemacquireMutex(&rw.readerSem, false)
5151
}
5252
if race.Enabled {
5353
race.Enable()
@@ -95,7 +95,7 @@ func (rw *RWMutex) Lock() {
9595
r := atomic.AddInt32(&rw.readerCount, -rwmutexMaxReaders) + rwmutexMaxReaders
9696
// Wait for active readers.
9797
if r != 0 && atomic.AddInt32(&rw.readerWait, r) != 0 {
98-
runtime_Semacquire(&rw.writerSem)
98+
runtime_SemacquireMutex(&rw.writerSem, false)
9999
}
100100
if race.Enabled {
101101
race.Enable()

0 commit comments

Comments
 (0)