* qemud/qemud.c src/node_device_hal.c: activate DBus multithreading

to avoid random crashes in the daemon, patch by Daniel Berrange
Daniel
This commit is contained in:
Daniel Veillard 2009-03-02 11:13:37 +00:00
parent 14dfe93965
commit a3ce3b1c71
3 changed files with 15 additions and 0 deletions

View File

@ -1,3 +1,8 @@
Mon Mar 2 12:12:11 CET 2009 Daniel Veillard <veillard@redhat.com>
* qemud/qemud.c src/node_device_hal.c: activate DBus multithreading
to avoid random crashes in the daemon, patch by Daniel Berrange
Mon Mar 2 10:16:04 +0100 2009 Jim Meyering <meyering@redhat.com>
correct a typo in a diagnostic

View File

@ -911,6 +911,10 @@ static struct qemud_server *qemudNetworkInit(struct qemud_server *server) {
if (auth_unix_rw == REMOTE_AUTH_POLKIT ||
auth_unix_ro == REMOTE_AUTH_POLKIT) {
DBusError derr;
dbus_connection_set_change_sigpipe(FALSE);
dbus_threads_init_default();
dbus_error_init(&derr);
server->sysbus = dbus_bus_get(DBUS_BUS_SYSTEM, &derr);
if (!(server->sysbus)) {
@ -919,6 +923,7 @@ static struct qemud_server *qemudNetworkInit(struct qemud_server *server) {
dbus_error_free(&derr);
goto cleanup;
}
dbus_connection_set_exit_on_disconnect(server->sysbus, FALSE);
}
#endif

View File

@ -685,6 +685,9 @@ static int halDeviceMonitorStartup(void)
nodeDeviceLock(driverState);
/* Allocate and initialize a new HAL context */
dbus_connection_set_change_sigpipe(FALSE);
dbus_threads_init_default();
dbus_error_init(&err);
hal_ctx = libhal_ctx_new();
if (hal_ctx == NULL) {
@ -696,6 +699,8 @@ static int halDeviceMonitorStartup(void)
fprintf(stderr, "%s: dbus_bus_get failed\n", __FUNCTION__);
goto failure;
}
dbus_connection_set_exit_on_disconnect(dbus_conn, FALSE);
if (!libhal_ctx_set_dbus_connection(hal_ctx, dbus_conn)) {
fprintf(stderr, "%s: libhal_ctx_set_dbus_connection failed\n",
__FUNCTION__);