Avoid panic's when referencing non-existing objects

No idea why wrapping the cmd in a function avoids a panic. Probably
something about the gc...
This commit is contained in:
James Shubin
2016-01-14 23:58:49 -05:00
parent f7858b8e9b
commit 6e9439f4e3
3 changed files with 29 additions and 6 deletions

View File

@@ -132,8 +132,12 @@ func (obj *ExecType) Watch() {
}
scanner := bufio.NewScanner(cmdReader)
defer cmd.Wait() // XXX: is this necessary?
defer cmd.Process.Kill() // TODO: is this necessary?
defer cmd.Wait() // XXX: is this necessary?
defer func() {
// FIXME: without wrapping this in this func it panic's
// when running examples/graph8d.yaml
cmd.Process.Kill() // TODO: is this necessary?
}()
if err := cmd.Start(); err != nil {
log.Printf("%v[%v]: Error starting Cmd: %v", obj.GetType(), obj.GetName(), err)
log.Fatal(err) // XXX: how should we handle errors?