diff options
| author | Adnan Maolood <[email protected]> | 2021-02-21 00:51:02 -0500 |
|---|---|---|
| committer | Adnan Maolood <[email protected]> | 2021-02-21 00:51:02 -0500 |
| commit | e3d48b2cadfafc9af9bced1af3053bf49cad7cca (patch) | |
| tree | 0dc8465f03add92df1a17286118ca98aceaf591a /server.go | |
| parent | server: Use separate context to cancel listeners (diff) | |
| download | archived-go-gemini-e3d48b2cadfafc9af9bced1af3053bf49cad7cca.tar.xz archived-go-gemini-e3d48b2cadfafc9af9bced1af3053bf49cad7cca.zip | |
server: Return ErrServerClosed
Diffstat (limited to 'server.go')
| -rw-r--r-- | server.go | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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: } |