Мне нужно отменить этот блокирующий вызов из другого потока:
dbus_connection_read_write (conn, 0);
Из документации я могу догадаться, что мне нужно отменить соединение, и этого будет достаточно. Вопрос — эта ветка unref’ing безопасна?
Вы можете сделать это, включив блокировку ресурсов в libdbus. Это можно сделать, вызвав dbus_threads_init_default () хотя бы один раз.
Других решений пока нет …