[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 11/29] libxl: events: Make libxl__async_exec_* pass caller an rc
On Tue, 2015-02-10 at 20:09 +0000, Ian Jackson wrote: > The internal user of libxl__async_exec_start et al now gets an rc as > well as the process's exit status. > > For now this is always either 0 or ERROR_FAIL, but with ao > cancellation this will possibly be CANCELLED or TIMEDOUT too. > > Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> > --- > v2: New patch due to rebause; v1 had changes to device_hotplug_* > scripts instead. > Callback now gets unambiguous information about error situation: > previously, if only thing that went wrong was that child died > badly, rc would be FAILED, which was unambigously; now rc=0. > Add a comment document the meaning of the rc and status parameters > to the callback. > --- > tools/libxl/libxl_aoutils.c | 9 ++++++--- > tools/libxl/libxl_device.c | 13 +++++++++---- > tools/libxl/libxl_internal.h | 11 ++++++++++- > tools/libxl/libxl_netbuffer.c | 19 ++++++++++--------- > tools/libxl/libxl_remus_disk_drbd.c | 8 +++++--- > 5 files changed, 40 insertions(+), 20 deletions(-) > > diff --git a/tools/libxl/libxl_aoutils.c b/tools/libxl/libxl_aoutils.c > index 754e2d1..891cdb8 100644 > --- a/tools/libxl/libxl_aoutils.c > +++ b/tools/libxl/libxl_aoutils.c > @@ -483,11 +483,12 @@ static void async_exec_done(libxl__egc *egc, > libxl__ev_time_deregister(gc, &aes->time); > > if (status) { > - libxl_report_child_exitstatus(CTX, LIBXL__LOG_ERROR, > - aes->what, pid, status); > + if (!aes->rc) Could be one "if (status && !aes->rc)", unless perhaps there is more code to come in this block? > + libxl__async_exec_state *aes, int rc, int status); > +/* > + * Meaning of status and rc: > + * rc==0, status==0 all went well > + * rc==0, status!=0 everything OK except child exited nonzero (logged) > + * rc!=0 something else went wrong (status is real > + * exit status, maybe reflecting SIGKILL if aes > + * code killed the child). Logged unless CANCELLED. I'm unclear on whether status is valid in this third case or not. I think you are saying that it is (probably?) valid but if rc!=0 the caller likely doesn't actually care what it is? Everything else looks fine to me. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |