Files
wehub-resource-sync 26f897c1ec
release / release-please (push) Failing after 1m49s
docs / build (push) Failing after 6m34s
release / build-and-upload (arm64, linux) (push) Has been cancelled
release / build-and-upload (arm64, windows) (push) Has been cancelled
release / build-darwin (amd64, darwin) (push) Has been cancelled
release / checksums (push) Has been cancelled
release / finalize (push) Has been cancelled
release / build-darwin (arm64, darwin) (push) Has been cancelled
release / build-and-upload (amd64, linux) (push) Has been cancelled
release / build-and-upload (amd64, windows) (push) Has been cancelled
docs / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:34:16 +08:00

37 lines
675 B
Go

//go:build windows
package main
import (
"errors"
"os/exec"
"syscall"
"time"
)
func newProcAttr() *syscall.SysProcAttr {
return &syscall.SysProcAttr{}
}
func terminateCmd(cmd *exec.Cmd, grace time.Duration) error {
if cmd == nil || cmd.Process == nil {
return nil
}
done := make(chan error, 1)
go func() {
done <- cmd.Wait()
}()
err := terminateWithFallback(func() error {
return cmd.Process.Signal(syscall.SIGTERM)
}, func() error {
return cmd.Process.Kill()
}, done, grace, func(err error) bool {
return errors.Is(err, syscall.EWINDOWS)
})
var exitErr *exec.ExitError
if err != nil && !errors.As(err, &exitErr) {
return err
}
return nil
}