DBusPendingCall* libdbusPendingCall;
dbus_bool_t libdbusSuccess;
+ suspendDispatching();
libdbusSuccess = dbus_connection_send_with_reply(
libdbusConnection_,
dbusMessage.libdbusMessage_,
if (!libdbusSuccess || !libdbusPendingCall) {
dbusMessageReplyAsyncHandler->onDBusMessageReply(CallStatus::CONNECTION_FAILED, dbusMessage);
+ resumeDispatching();
return dbusMessageReplyAsyncHandler->getFuture();
}
if (!libdbusSuccess) {
dbusMessageReplyAsyncHandler->onDBusMessageReply(CallStatus::OUT_OF_MEMORY, dbusMessage);
dbus_pending_call_unref(libdbusPendingCall);
+ resumeDispatching();
return dbusMessageReplyAsyncHandler->getFuture();
}
- return dbusMessageReplyAsyncHandler.release()->getFuture();
+ std::future<CallStatus> result = dbusMessageReplyAsyncHandler.release()->getFuture();
+
+ resumeDispatching();
+
+ return result;
}