Change os.signal from syscall.Signal(21) to syscall.SIGINT for Windows

This commit is contained in:
Abhishek Pandey 2023-04-06 00:47:47 -07:00
parent 5c774de630
commit 569dbf18ce
4 changed files with 12 additions and 2 deletions

View File

@ -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

View File

@ -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")

View File

@ -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")

View File

@ -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 {