From afadbc66213f460136ddd16d379c739a993e72f9 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 10 Jan 2020 22:32:07 +0800 Subject: [PATCH] improve genv.Remove/gproc.Kill --- os/genv/genv.go | 13 ++++++++++--- os/gproc/gproc_process.go | 5 ++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/os/genv/genv.go b/os/genv/genv.go index e3635cef1..8ab463420 100644 --- a/os/genv/genv.go +++ b/os/genv/genv.go @@ -60,7 +60,14 @@ func Build(m map[string]string) []string { return array } -// Remove deletes a single environment variable. -func Remove(key string) error { - return os.Unsetenv(key) +// Remove deletes one or more environment variables. +func Remove(key ...string) error { + var err error + for _, v := range key { + err = os.Unsetenv(v) + if err != nil { + return err + } + } + return nil } diff --git a/os/gproc/gproc_process.go b/os/gproc/gproc_process.go index 48eb92394..a3923728f 100644 --- a/os/gproc/gproc_process.go +++ b/os/gproc/gproc_process.go @@ -11,6 +11,7 @@ import ( "fmt" "os" "os/exec" + "runtime" "strings" ) @@ -115,7 +116,9 @@ func (p *Process) Kill() error { if p.Manager != nil { p.Manager.processes.Remove(p.Pid()) } - p.Process.Release() + if runtime.GOOS != "windows" { + p.Process.Release() + } p.Process.Wait() return nil } else {