summaryrefslogtreecommitdiff
path: root/gemini/serve.go
diff options
context:
space:
mode:
Diffstat (limited to 'gemini/serve.go')
-rw-r--r--gemini/serve.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/gemini/serve.go b/gemini/serve.go
index abf127e..f9a8a1c 100644
--- a/gemini/serve.go
+++ b/gemini/serve.go
@@ -8,6 +8,7 @@ import (
"sync"
)
+// Server listens on a network and serves the gemini protocol.
type Server struct {
ctx context.Context
network string
@@ -18,6 +19,7 @@ type Server struct {
handler Handler
}
+// NewServer builds a server.
func NewServer(
ctx context.Context,
tlsConfig *tls.Config,
@@ -46,6 +48,10 @@ func NewServer(
//
// This function will allocate resources which are not cleaned up until
// Close() is called.
+//
+// It will respect cancellation of the context the server was created with,
+// but be aware that Close() must still be called in that case to avoid
+// dangling goroutines.
func (s *Server) Serve() error {
s.wg.Add(1)
defer s.wg.Done()