From b375974bc34fb85ff4f2d75061059be9b51b3a7c Mon Sep 17 00:00:00 2001 From: Juanadelacuesta <8647634+Juanadelacuesta@users.noreply.github.com> Date: Wed, 23 Apr 2025 15:47:37 +0200 Subject: [PATCH] style: add comments --- command/agent/command.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/command/agent/command.go b/command/agent/command.go index a1acc374d..5d332b840 100644 --- a/command/agent/command.go +++ b/command/agent/command.go @@ -979,6 +979,7 @@ func (c *Command) handleRetryJoin(config *Config) error { } func (c *Command) terminate(signalCh chan os.Signal, sdSock io.Writer) int { + // Bail fast if not doing a graceful leave if !c.agent.GetConfig().LeaveOnInt { return 1 } @@ -986,6 +987,8 @@ func (c *Command) terminate(signalCh chan os.Signal, sdSock io.Writer) int { // Attempt a graceful leave sdNotify(sdSock, sdStopping) gracefulCh := make(chan struct{}) + defer close(gracefulCh) + c.Ui.Output("Gracefully shutting down agent...") go func() { if err := c.agent.Leave(); err != nil { @@ -1002,13 +1005,16 @@ func (c *Command) terminate(signalCh chan os.Signal, sdSock io.Writer) int { case <-time.After(gracefulTimeout): return 1 case <-gracefulCh: - return 0 } + + return 0 } // handleSignals blocks until we get an exit-causing signal func (c *Command) handleSignals() int { signalCh := make(chan os.Signal, 4) + defer close(signalCh) + signal.Notify(signalCh, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP, syscall.SIGPIPE) // Signal readiness only once signal handlers are setup