Close stops the server and blocks until resources have been cleaned up. It must be called after Start.
()
| 224 | // Close stops the server and blocks until resources have been cleaned up. |
| 225 | // It must be called after Start. |
| 226 | func (s *Server) Close() error { |
| 227 | if s.cancel != nil { |
| 228 | s.cancel() |
| 229 | } |
| 230 | |
| 231 | if s.listener != nil { |
| 232 | _ = s.listener.Close() |
| 233 | } |
| 234 | |
| 235 | s.wg.Wait() |
| 236 | |
| 237 | err := os.Remove(s.socketPath) |
| 238 | if err != nil && !errors.Is(err, os.ErrNotExist) { |
| 239 | return err |
| 240 | } |
| 241 | return nil |
| 242 | } |