Skip to content

Commit 608cf7f

Browse files
kylecarbslornasong
authored andcommitted
Use CommandContext to kill instead of manually doing it
1 parent 2f70061 commit 608cf7f

File tree

3 files changed

+1
-28
lines changed

3 files changed

+1
-28
lines changed

tfexec/cmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func (tf *Terraform) buildEnv(mergeEnv map[string]string) []string {
171171
}
172172

173173
func (tf *Terraform) buildTerraformCmd(ctx context.Context, mergeEnv map[string]string, args ...string) *exec.Cmd {
174-
cmd := exec.Command(tf.execPath, args...)
174+
cmd := exec.CommandContext(ctx, tf.execPath, args...)
175175

176176
cmd.Env = tf.buildEnv(mergeEnv)
177177
cmd.Dir = tf.workingDir

tfexec/cmd_default.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,6 @@ func (tf *Terraform) runTerraformCmd(ctx context.Context, cmd *exec.Cmd) error {
1515
cmd.Stdout = mergeWriters(cmd.Stdout, tf.stdout)
1616
cmd.Stderr = mergeWriters(cmd.Stderr, tf.stderr, &errBuf)
1717

18-
go func() {
19-
<-ctx.Done()
20-
if ctx.Err() == context.DeadlineExceeded || ctx.Err() == context.Canceled {
21-
if cmd != nil && cmd.Process != nil {
22-
err := cmd.Process.Kill()
23-
if err != nil {
24-
tf.logger.Printf("error from kill: %s", err)
25-
}
26-
}
27-
}
28-
}()
29-
3018
// check for early cancellation
3119
select {
3220
case <-ctx.Done():

tfexec/cmd_linux.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,6 @@ func (tf *Terraform) runTerraformCmd(ctx context.Context, cmd *exec.Cmd) error {
2020
Setpgid: true,
2121
}
2222

23-
go func() {
24-
<-ctx.Done()
25-
if ctx.Err() == context.DeadlineExceeded || ctx.Err() == context.Canceled {
26-
if cmd != nil && cmd.Process != nil {
27-
// send SIGINT to process group
28-
err := syscall.Kill(-cmd.Process.Pid, syscall.SIGINT)
29-
if err != nil {
30-
tf.logger.Printf("error from SIGINT: %s", err)
31-
}
32-
}
33-
34-
// TODO: send a kill if it doesn't respond for a bit?
35-
}
36-
}()
37-
3823
// check for early cancellation
3924
select {
4025
case <-ctx.Done():

0 commit comments

Comments
 (0)