From 569dbf18ce411339799f25916f9ffbc2fe4c2df0 Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Thu, 6 Apr 2023 00:47:47 -0700 Subject: [PATCH] Change os.signal from syscall.Signal(21) to syscall.SIGINT for Windows --- src/internal/events/events.go | 2 +- .../{events_signal_unix_test.go => events_signal_test.go} | 2 +- src/internal/events/events_signal_unix.go | 4 ++++ src/internal/events/events_signal_windows.go | 6 ++++++ 4 files changed, 12 insertions(+), 2 deletions(-) rename src/internal/events/{events_signal_unix_test.go => events_signal_test.go} (91%) diff --git a/src/internal/events/events.go b/src/internal/events/events.go index da7f8cfe3..51d6c7e98 100644 --- a/src/internal/events/events.go +++ b/src/internal/events/events.go @@ -186,7 +186,7 @@ func NewMetrics(ctx context.Context, w io.Writer) (context.Context, func()) { // logging rates; that's handled by dumpMetrics(). sink = metrics.NewInmemSink(reportInterval, retentionDuration) cfg = metrics.DefaultConfig("corso") - sig = metrics.NewInmemSignal(sink, metrics.DefaultSignal, w) + sig = metrics.NewInmemSignal(sink, sentSignal, w) ) cfg.EnableHostname = false diff --git a/src/internal/events/events_signal_unix_test.go b/src/internal/events/events_signal_test.go similarity index 91% rename from src/internal/events/events_signal_unix_test.go rename to src/internal/events/events_signal_test.go index ff5679f4d..4d584ecce 100644 --- a/src/internal/events/events_signal_unix_test.go +++ b/src/internal/events/events_signal_test.go @@ -36,7 +36,7 @@ func (suite *EventsSignalUnitSuite) TestSignalDump() { select { case sig := <-sigCh: - assert.Equal(t, metrics.DefaultSignal, sig, "received wrong signal") + assert.Equal(t, sentSignal, sig, "received wrong signal") case <-time.After(1 * time.Second): assert.Fail(t, "timeout waiting for signal") diff --git a/src/internal/events/events_signal_unix.go b/src/internal/events/events_signal_unix.go index 08db17856..97bd00840 100644 --- a/src/internal/events/events_signal_unix.go +++ b/src/internal/events/events_signal_unix.go @@ -13,6 +13,10 @@ import ( "github.com/alcionai/corso/src/pkg/logger" ) +const ( + sentSignal = metrics.DefaultSignal +) + func signalDump(ctx context.Context) { if err := unix.Kill(syscall.Getpid(), metrics.DefaultSignal); err != nil { logger.CtxErr(ctx, err).Error("metrics interval signal") diff --git a/src/internal/events/events_signal_windows.go b/src/internal/events/events_signal_windows.go index b69345e43..81ff85575 100644 --- a/src/internal/events/events_signal_windows.go +++ b/src/internal/events/events_signal_windows.go @@ -7,6 +7,12 @@ import ( "golang.org/x/sys/windows" ) +const ( + // On Windows, ctrl-break event appears as os.Interrupt(syscall.SIGINT) + //https://pkg.go.dev/os/signal#hdr-Windows + sentSignal = os.Interrupt +) + func signalDump(ctx context.Context) { err := windows.GenerateConsoleCtrlEvent(syscall.CTRL_BREAK_EVENT, uint32(syscall.Getpid())) if err != nil {