]> 127.0.0.1 Git - part/.git/commitdiff
fix v0.27.4
authorqydysky <qydysky@foxmail.com>
Tue, 16 May 2023 19:08:04 +0000 (03:08 +0800)
committerqydysky <qydysky@foxmail.com>
Tue, 16 May 2023 19:08:04 +0000 (03:08 +0800)
sync/RWMutex.go

index 828fb2ed2a083776537dca8d7e97c752387e7abd..712cc88f156d9e3b8cc111e0e5428f20f4332923 100644 (file)
@@ -55,6 +55,7 @@ func (m *RWMutex) RLock(to ...time.Duration) (lockf func() (unlockf func())) {
                        }()
                } else {
                        for m.rlc.Load() < ulock {
+                               time.Sleep(time.Millisecond)
                                runtime.Gosched()
                        }
                }
@@ -115,9 +116,11 @@ func (m *RWMutex) Lock(to ...time.Duration) (lockf func() (unlockf func())) {
                        }()
                } else {
                        for m.rlc.Load() > ulock || m.wantRead.Load() {
+                               time.Sleep(time.Millisecond)
                                runtime.Gosched()
                        }
                        for lockid-1 != m.oll.Load() {
+                               time.Sleep(time.Millisecond)
                                runtime.Gosched()
                        }
                        if !m.rlc.CompareAndSwap(ulock, lock) {