.disaster = NULL,
};
-static const libxl_childproc_hooks libxl_child_hooks = {
-#ifdef LIBXL_HAVE_SIGCHLD_OWNER_SELECTIVE_REAP
- .chldowner = libxl_sigchld_owner_libxl_always_selective_reap,
-#else
- .chldowner = libxl_sigchld_owner_libxl,
-#endif
-};
-
int
libxlDomainObjPrivateInitCtx(virDomainObjPtr vm)
{
goto cleanup;
}
- libxl_childproc_setmode(priv->ctx, &libxl_child_hooks, priv);
-
ret = 0;
cleanup:
.timeout_deregister = libxlTimeoutDeregisterEventHook,
};
+static const libxl_childproc_hooks libxl_child_hooks = {
+#ifdef LIBXL_HAVE_SIGCHLD_OWNER_SELECTIVE_REAP
+ .chldowner = libxl_sigchld_owner_libxl_always_selective_reap,
+#else
+ .chldowner = libxl_sigchld_owner_libxl,
+#endif
+};
+
static int
libxlStateInitialize(bool privileged,
virStateInhibitCallback callback ATTRIBUTE_UNUSED,
/* Register the callbacks providing access to libvirt's event loop */
libxl_osevent_register_hooks(cfg->ctx, &libxl_osevent_callbacks, cfg->ctx);
+ /* Setup child process handling. See $xen-src/tools/libxl/libxl_event.h */
+ libxl_childproc_setmode(cfg->ctx, &libxl_child_hooks, cfg->ctx);
+
libxl_driver->config = cfg;
if (virFileMakePath(cfg->stateDir) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,