diff options
Diffstat (limited to 'internal/io')
| -rw-r--r-- | internal/io/signal/signal.go | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/internal/io/signal/signal.go b/internal/io/signal/signal.go index 9401707..06abb0b 100644 --- a/internal/io/signal/signal.go +++ b/internal/io/signal/signal.go @@ -6,31 +6,28 @@ import ( gosignal "os/signal" "syscall" "time" - - "github.com/mimecast/dtail/internal/io/logger" ) // StatsCh returns a channel for "please print stats" signalling. -func InterruptCh(ctx context.Context) <-chan struct{} { +func InterruptCh(ctx context.Context) <-chan string { sigIntCh := make(chan os.Signal) gosignal.Notify(sigIntCh, os.Interrupt) sigOtherCh := make(chan os.Signal) gosignal.Notify(sigOtherCh, syscall.SIGHUP, syscall.SIGTERM, syscall.SIGQUIT) - statsCh := make(chan struct{}) + statsCh := make(chan string) go func() { for { select { case <-sigIntCh: select { - case statsCh <- struct{}{}: - logger.Info("Hint: Hit Ctrl+C twice to exit") + case statsCh <- "Hint: Hit Ctrl+C again to exit": select { case <-sigIntCh: os.Exit(0) - case <-time.After(time.Second): + case <-time.After(time.Second * 3): } default: // Stats already printed. |
