etcdserver: fix server.Stop()

Stop should be idempotent. It should simply send a stop signal to the server.
It is the server's responsibility to stop the go-routines and related components.
This commit is contained in:
Xiang Li
2014-11-13 13:47:12 -08:00
parent 8319d4dcbe
commit 30dfdb0ea9
2 changed files with 15 additions and 12 deletions

View File

@ -1108,10 +1108,9 @@ func TestPublishStopped(t *testing.T) {
Cluster: &Cluster{},
w: &waitRecorder{},
done: make(chan struct{}),
stopped: make(chan struct{}),
stop: make(chan struct{}),
}
close(srv.stopped)
srv.Stop()
close(srv.done)
srv.publish(time.Hour)
}
@ -1123,7 +1122,7 @@ func TestPublishRetry(t *testing.T) {
w: &waitRecorder{},
done: make(chan struct{}),
}
time.AfterFunc(500*time.Microsecond, srv.Stop)
time.AfterFunc(500*time.Microsecond, func() { close(srv.done) })
srv.publish(10 * time.Nanosecond)
action := n.Action()