MCPcopy Create free account
hub / github.com/coder/coder / interruptCommandOnCancel

Function interruptCommandOnCancel

provisioner/terraform/executor.go:576–594  ·  view source on GitHub ↗
(ctx, killCtx context.Context, logger slog.Logger, cmd *exec.Cmd)

Source from the content-addressed store, hash-verified

574}
575
576func interruptCommandOnCancel(ctx, killCtx context.Context, logger slog.Logger, cmd *exec.Cmd) {
577 go func() {
578 select {
579 case <-ctx.Done():
580 var err error
581 switch runtime.GOOS {
582 case "windows":
583 // Interrupts aren't supported by Windows.
584 err = cmd.Process.Kill()
585 default:
586 err = cmd.Process.Signal(os.Interrupt)
587 }
588 logger.Debug(ctx, "interrupted command", slog.F("args", cmd.Args), slog.Error(err))
589
590 case <-killCtx.Done():
591 logger.Debug(ctx, "kill context ended", slog.F("args", cmd.Args))
592 }
593 }()
594}
595
596type logSink interface {
597 ProvisionLog(l proto.LogLevel, o string)

Callers 3

execWriteOutputMethod · 0.85
execParseJSONMethod · 0.85
graphMethod · 0.85

Calls 4

KillMethod · 0.65
SignalMethod · 0.65
DoneMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected