aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
authorAdnan Maolood <[email protected]>2021-02-15 20:16:32 -0500
committerAdnan Maolood <[email protected]>2021-02-15 20:16:32 -0500
commita05fa6d6bdd3e0c5b6879a7f4d0ac1a25971a246 (patch)
tree696d1c87991a7901c679e2af673cd03fba4bf653 /server.go
parentserver: Use separate mutex for handlers (diff)
downloadgo-gemini-a05fa6d6bdd3e0c5b6879a7f4d0ac1a25971a246.tar.xz
go-gemini-a05fa6d6bdd3e0c5b6879a7f4d0ac1a25971a246.zip
server: Avoid creating a new Listener after Close
Diffstat (limited to 'server.go')
-rw-r--r--server.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/server.go b/server.go
index 619d355..32afe27 100644
--- a/server.go
+++ b/server.go
@@ -117,6 +117,10 @@ func (srv *Server) HandleFunc(pattern string, handler func(ResponseWriter, *Requ
// ListenAndServe always returns a non-nil error. After Shutdown or Close, the
// returned error is ErrServerClosed.
func (srv *Server) ListenAndServe() error {
+ if atomic.LoadInt32(&srv.done) == 1 {
+ return ErrServerClosed
+ }
+
addr := srv.Addr
if addr == "" {
addr = ":1965"