On Tue, Mar 22, 2011 at 04:45:09PM -0600, Eric Blake wrote: > Sometimes, an asynchronous helper is started (such as a compressor > or iohelper program), but a later error means that we want to > abort that child. Make this easier. > > /* > @@ -1207,6 +1208,8 @@ virCommandRunAsync(virCommandPtr cmd, pid_t *pid) > > if (ret == 0 && pid) > *pid = cmd->pid; > + else > + cmd->reap = true; > > return ret; > } [snip] > @@ -1305,5 +1368,8 @@ virCommandFree(virCommandPtr cmd) > > VIR_FREE(cmd->pidfile); > > + if (cmd->reap) > + virCommandAbort(cmd); > + > VIR_FREE(cmd); > } We allow virCommandRunAsync to be used for daemonized commands, so I don't think it is safe to unconditionally kill off the PID when free'ing the virCommandPtr instance. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list