mirror of https://github.com/golang/go.git
When we have already assigned the semaphore ticket to a specific waiter, we want to get the waiter running as fast as possible since no other G waiting on the semaphore can acquire it optimistically. The net effect is that, when a sync.Mutex is contended, the code in the critical section guarded by the Mutex gets a priority boost. Fixes #33747 The original work was done in CL 200577 by Carlo Alberto Ferraris. The change was reverted in CL 205817 because it broke the linux-arm64-packet and solaris-amd64-oraclerel builders. Change-Id: I76d79b1d63fd206ed1c57fe6900cb7ae9e4d46cb Reviewed-on: https://go-review.googlesource.com/c/go/+/206180 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> |
||
|---|---|---|
| .. | ||
| atomic | ||
| cond.go | ||
| cond_test.go | ||
| example_pool_test.go | ||
| example_test.go | ||
| export_test.go | ||
| map.go | ||
| map_bench_test.go | ||
| map_reference_test.go | ||
| map_test.go | ||
| mutex.go | ||
| mutex_test.go | ||
| once.go | ||
| once_test.go | ||
| pool.go | ||
| pool_test.go | ||
| poolqueue.go | ||
| runtime.go | ||
| runtime_sema_test.go | ||
| rwmutex.go | ||
| rwmutex_test.go | ||
| waitgroup.go | ||
| waitgroup_test.go | ||