am 3e941347: am 6f6b21b4: am 4733d3a6: Merge "Bluetooth event loop dispatches dbus data on wakeup"

* commit '3e9413473f87ad17f3767ffbb0c57046c2db29be':
  Bluetooth event loop dispatches dbus data on wakeup
diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp
index a6bde88..41ef7cc1 100644
--- a/core/jni/android_server_BluetoothEventLoop.cpp
+++ b/core/jni/android_server_BluetoothEventLoop.cpp
@@ -486,6 +486,7 @@
 #define EVENT_LOOP_EXIT 1
 #define EVENT_LOOP_ADD  2
 #define EVENT_LOOP_REMOVE 3
+#define EVENT_LOOP_WAKEUP 4
 
 dbus_bool_t dbusAddWatch(DBusWatch *watch, void *data) {
     native_data_t *nat = (native_data_t *)data;
@@ -530,6 +531,13 @@
     }
 }
 
+void dbusWakeup(void *data) {
+    native_data_t *nat = (native_data_t *)data;
+
+    char control = EVENT_LOOP_WAKEUP;
+    write(nat->controlFdW, &control, sizeof(char));
+}
+
 static void handleWatchAdd(native_data_t *nat) {
     DBusWatch *watch;
     int newFD;
@@ -613,6 +621,7 @@
 
     dbus_connection_set_watch_functions(nat->conn, dbusAddWatch,
             dbusRemoveWatch, dbusToggleWatch, ptr, NULL);
+    dbus_connection_set_wakeup_main_function(nat->conn, dbusWakeup, ptr, NULL);
 
     nat->running = true;
 
@@ -648,6 +657,11 @@
                         handleWatchRemove(nat);
                         break;
                     }
+                    case EVENT_LOOP_WAKEUP:
+                    {
+                        // noop
+                        break;
+                    }
                     }
                 }
             } else {