mirror of
https://github.com/go-gost/x.git
synced 2026-10-19 16:16:32 +00:00
chainGroup.Close() existed but was never called: the group is wrapped in a chain.Router held by the listener/handler, and service.Close() only closed the handler, observer, and listener. Every SIGHUP reload leaked the old config's probe goroutines permanently. Wire the close path end to end: - Router.Close() closes its chain when it implements io.Closer - service ClosersOption registers io.Closers called on shutdown - ParseService passes both routers via ClosersOption, and closes them on construction failure so probes started early don't leak