| 1234567891011121314151617181920212223242526 |
- package service
- import (
- "testing"
- "time"
- )
- func TestLockInboundReleasesRegistryMutexWhileWaiting(t *testing.T) {
- const id = 990006
- held := lockInbound(id)
- parked := make(chan struct{})
- go func() {
- close(parked)
- lockInbound(id).Unlock()
- }()
- <-parked
- time.Sleep(50 * time.Millisecond)
- if !inboundMutationLocksMu.TryLock() {
- held.Unlock()
- t.Fatal("registry mutex is held while a lockInbound caller waits on a busy inbound")
- }
- inboundMutationLocksMu.Unlock()
- held.Unlock()
- }
|