aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
authorAdnan Maolood <[email protected]>2021-02-21 00:51:02 -0500
committerAdnan Maolood <[email protected]>2021-02-21 00:51:02 -0500
commite3d48b2cadfafc9af9bced1af3053bf49cad7cca (patch)
tree0dc8465f03add92df1a17286118ca98aceaf591a /server.go
parentserver: Use separate context to cancel listeners (diff)
downloadarchived-go-gemini-e3d48b2cadfafc9af9bced1af3053bf49cad7cca.tar.xz
archived-go-gemini-e3d48b2cadfafc9af9bced1af3053bf49cad7cca.zip
server: Return ErrServerClosed
Diffstat (limited to 'server.go')
-rw-r--r--server.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/server.go b/server.go
index 69a8b22..c2983bb 100644
--- a/server.go
+++ b/server.go
@@ -219,6 +219,9 @@ func (srv *Server) Serve(ctx context.Context, l net.Listener) error {
select {
case <-lnctx.Done():
+ if atomic.LoadInt32(&srv.closed) == 1 {
+ return ErrServerClosed
+ }
return lnctx.Err()
case err := <-errch:
return err
@@ -234,6 +237,9 @@ func (srv *Server) serve(ctx context.Context, l net.Listener) error {
if err != nil {
select {
case <-ctx.Done():
+ if atomic.LoadInt32(&srv.closed) == 1 {
+ return ErrServerClosed
+ }
return ctx.Err()
default:
}