forked from quic-go/quic-go
http3: rename Server.CloseGracefully to Shutdown (#4701)
This is more consistent with standard library naming for graceful shutdown methods for HTTP/1 and HTTP/2.
This commit is contained in:
@@ -747,10 +747,10 @@ func (s *Server) Close() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// CloseGracefully shuts down the server gracefully.
|
// Shutdown shuts down the server gracefully.
|
||||||
// The server sends a GOAWAY frame first, then or for all running requests to complete.
|
// The server sends a GOAWAY frame first, then or for all running requests to complete.
|
||||||
// CloseGracefully in combination with ListenAndServe() (instead of Serve()) may race if it is called before a UDP socket is established.
|
// Shutdown in combination with ListenAndServe() (instead of Serve()) may race if it is called before a UDP socket is established.
|
||||||
func (s *Server) CloseGracefully(ctx context.Context) error {
|
func (s *Server) Shutdown(ctx context.Context) error {
|
||||||
s.mutex.Lock()
|
s.mutex.Lock()
|
||||||
s.closed = true
|
s.closed = true
|
||||||
// server is never used
|
// server is never used
|
||||||
|
|||||||
@@ -1200,7 +1200,7 @@ var _ = Describe("Server", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("closes gracefully", func() {
|
It("closes gracefully", func() {
|
||||||
Expect(s.CloseGracefully(context.Background())).To(Succeed())
|
Expect(s.Shutdown(context.Background())).To(Succeed())
|
||||||
})
|
})
|
||||||
|
|
||||||
It("errors when listening fails", func() {
|
It("errors when listening fails", func() {
|
||||||
|
|||||||
@@ -1092,7 +1092,7 @@ var _ = Describe("HTTP tests", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
Expect(server.CloseGracefully(context.Background())).To(Succeed())
|
Expect(server.Shutdown(context.Background())).To(Succeed())
|
||||||
fmt.Println("close gracefully done")
|
fmt.Println("close gracefully done")
|
||||||
}()
|
}()
|
||||||
time.Sleep(delay)
|
time.Sleep(delay)
|
||||||
@@ -1112,7 +1112,7 @@ var _ = Describe("HTTP tests", func() {
|
|||||||
// manually close the client, since we don't support
|
// manually close the client, since we don't support
|
||||||
client.Transport.(*http3.Transport).Close()
|
client.Transport.(*http3.Transport).Close()
|
||||||
|
|
||||||
// make sure that CloseGracefully returned
|
// make sure that Shutdown returned
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1130,7 +1130,7 @@ var _ = Describe("HTTP tests", func() {
|
|||||||
ctx, cancel := context.WithTimeout(context.Background(), delay)
|
ctx, cancel := context.WithTimeout(context.Background(), delay)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
defer close(shutdownDone)
|
defer close(shutdownDone)
|
||||||
Expect(server.CloseGracefully(ctx)).To(MatchError(context.DeadlineExceeded))
|
Expect(server.Shutdown(ctx)).To(MatchError(context.DeadlineExceeded))
|
||||||
}()
|
}()
|
||||||
for t := range time.NewTicker(delay / 10).C {
|
for t := range time.NewTicker(delay / 10).C {
|
||||||
if _, err := w.Write([]byte(t.String())); err != nil {
|
if _, err := w.Write([]byte(t.String())); err != nil {
|
||||||
@@ -1155,7 +1155,7 @@ var _ = Describe("HTTP tests", func() {
|
|||||||
Eventually(requestChan).Should(Receive(&requestDuration))
|
Eventually(requestChan).Should(Receive(&requestDuration))
|
||||||
Expect(requestDuration).To(BeNumerically("~", delay, delay/2))
|
Expect(requestDuration).To(BeNumerically("~", delay, delay/2))
|
||||||
|
|
||||||
// make sure that CloseGracefully returned
|
// make sure that Shutdown returned
|
||||||
Eventually(shutdownDone).Should(BeClosed())
|
Eventually(shutdownDone).Should(BeClosed())
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user