mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
server: Move director interrupt handler to method
This commit is contained in:
parent
655d171eca
commit
b5b466088d
@ -45,9 +45,7 @@ func newDirector(lg *zap.Logger, urlsFunc GetProxyURLs, failureWait time.Duratio
|
|||||||
stopc: make(chan struct{}),
|
stopc: make(chan struct{}),
|
||||||
donec: make(chan struct{}),
|
donec: make(chan struct{}),
|
||||||
}
|
}
|
||||||
osutil.RegisterInterruptHandler(func() {
|
osutil.RegisterInterruptHandler(d.stop)
|
||||||
close(d.stopc)
|
|
||||||
})
|
|
||||||
d.refresh()
|
d.refresh()
|
||||||
go func() {
|
go func() {
|
||||||
defer close(d.donec)
|
defer close(d.donec)
|
||||||
@ -129,6 +127,15 @@ func (d *director) endpoints() []*endpoint {
|
|||||||
return filtered
|
return filtered
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *director) stop() {
|
||||||
|
close(d.stopc)
|
||||||
|
select {
|
||||||
|
case <-d.donec:
|
||||||
|
case <-time.After(time.Second):
|
||||||
|
d.lg.Warn("timed out waiting for director to stop")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func newEndpoint(lg *zap.Logger, u url.URL, failureWait time.Duration) *endpoint {
|
func newEndpoint(lg *zap.Logger, u url.URL, failureWait time.Duration) *endpoint {
|
||||||
ep := endpoint{
|
ep := endpoint{
|
||||||
lg: lg,
|
lg: lg,
|
||||||
|
@ -67,12 +67,7 @@ func TestNewDirectorScheme(t *testing.T) {
|
|||||||
t.Errorf("#%d: want endpoints = %#v, got = %#v", i, tt.want, gep)
|
t.Errorf("#%d: want endpoints = %#v, got = %#v", i, tt.want, gep)
|
||||||
}
|
}
|
||||||
|
|
||||||
close(got.stopc)
|
got.stop()
|
||||||
select {
|
|
||||||
case <-got.donec:
|
|
||||||
case <-time.After(time.Second):
|
|
||||||
t.Fatalf("done took too long")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user