summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Laner <laner@itestra.de>2013-12-20 16:08:54 +0100
committerStefan Laner <laner@itestra.de>2013-12-20 16:08:54 +0100
commit881fc08f926de82faba65cb58b0505bb402fc58b (patch)
treede2945ee32cfcaed1a7f70ca320328762e67a9ce
parent84236f82eed755e98890ad1e6d607192010a0dea (diff)
parent57f5b27bb307c13398dd980b88433b7d3cf158e3 (diff)
downloadgenivi-common-api-dbus-runtime-881fc08f926de82faba65cb58b0505bb402fc58b.tar.gz
Merge remote-tracking branch 'origin/maintain/2.0' into dev/windows
-rw-r--r--configure.ac4
-rw-r--r--src/CommonAPI/DBus/DBusConnection.cpp9
2 files changed, 10 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index bcb9c08..177b5dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.61])
AC_INIT([GENIVI Common API DBus C++ Library],
- [2.0],
+ [2.0.8],
[],
[CommonAPI-DBus])
@@ -31,7 +31,7 @@ LT_PREREQ(2.2)
LT_INIT
PKG_PROG_PKG_CONFIG
-PKG_CHECK_MODULES(COMMONAPI, [CommonAPI >= 2.0])
+PKG_CHECK_MODULES(COMMONAPI, [CommonAPI = 2.0.8])
PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.4.6])
PKG_CHECK_MODULES(GLIB, [glib-2.0],
[],
diff --git a/src/CommonAPI/DBus/DBusConnection.cpp b/src/CommonAPI/DBus/DBusConnection.cpp
index 3b58241..fc35997 100644
--- a/src/CommonAPI/DBus/DBusConnection.cpp
+++ b/src/CommonAPI/DBus/DBusConnection.cpp
@@ -414,6 +414,7 @@ std::future<CallStatus> DBusConnection::sendDBusMessageWithReplyAsync(
DBusPendingCall* libdbusPendingCall;
dbus_bool_t libdbusSuccess;
+ suspendDispatching();
libdbusSuccess = dbus_connection_send_with_reply(
libdbusConnection_,
dbusMessage.libdbusMessage_,
@@ -422,6 +423,7 @@ std::future<CallStatus> DBusConnection::sendDBusMessageWithReplyAsync(
if (!libdbusSuccess || !libdbusPendingCall) {
dbusMessageReplyAsyncHandler->onDBusMessageReply(CallStatus::CONNECTION_FAILED, dbusMessage);
+ resumeDispatching();
return dbusMessageReplyAsyncHandler->getFuture();
}
@@ -434,10 +436,15 @@ std::future<CallStatus> DBusConnection::sendDBusMessageWithReplyAsync(
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;
}