Call adapter_start on idle after adapter_register is completed. 42/101642/1 submit/tizen/20161205.050350
authorDeokhyun Kim <dukan.kim@samsung.com>
Thu, 1 Dec 2016 11:07:16 +0000 (20:07 +0900)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Fri, 2 Dec 2016 00:18:13 +0000 (09:18 +0900)
  adapter_register is NOT completed yet, but tries to emit a signal in
  adapter_start. Modified to call adapter_start on idle after adapter_register
  is completed.

Change-Id: I51a99954e330b40c244794b6d000698e4636cedf
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
src/adapter.c

index 70f7064..0180b5e 100644 (file)
@@ -13045,6 +13045,17 @@ static int clear_devices(struct btd_adapter *adapter)
        return -EIO;
 }
 
+#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
+static gboolean adapter_start_idle_cb(gpointer user_data)
+{
+       struct btd_adapter *adapter = (struct btd_adapter*)user_data;
+
+       adapter_start(adapter);
+
+       return FALSE;
+}
+#endif
+
 static void read_info_complete(uint8_t status, uint16_t length,
                                        const void *param, void *user_data)
 {
@@ -13346,7 +13357,11 @@ static void read_info_complete(uint8_t status, uint16_t length,
                set_discoverable(adapter, 0x01, 0);
 
        if (adapter->current_settings & MGMT_SETTING_POWERED)
+#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
+               g_idle_add(adapter_start_idle_cb, adapter);
+#else
                adapter_start(adapter);
+#endif
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
        else
                set_mode(adapter, MGMT_OP_SET_POWERED, 0x01);