flagStderrSilent *bool
TracedAll bool
+
+ RunningProcs = map[int]*os.Process{}
+ RunningProcsM sync.Mutex
)
func init() {
}
return false, nil, err
}
- if m["Target"] != tgt {
+ if m["Type"] != DepTypeIfchange || m["Target"] != tgt {
continue
}
fd, err := os.Open(path.Join(cwd, tgt))
})
fields = append(fields, recfile.Field{Name: "Cmd", Value: cmdName})
for _, arg := range args {
- fields = append(fields, recfile.Field{Name: "Cmd", Value: arg})
+ fields = append(fields, recfile.Field{Name: "Arg", Value: arg})
}
for _, env := range cmd.Env {
fields = append(fields, recfile.Field{Name: "Env", Value: env})
errs <- runErr
return
}
+ RunningProcsM.Lock()
+ RunningProcs[cmd.Process.Pid] = cmd.Process
+ RunningProcsM.Unlock()
pid := fmt.Sprintf("[%d]", cmd.Process.Pid)
trace(CDebug, "%s runs %s", tgtOrig, pid)
// Wait for job completion
<-stderrTerm
err = cmd.Wait()
+ RunningProcsM.Lock()
+ delete(RunningProcs, cmd.Process.Pid)
+ RunningProcsM.Unlock()
finished = time.Now()
runErr.Finished = &finished
if err != nil {