From 1200911b5086818e9ece03e1228de80e75b768e1 Mon Sep 17 00:00:00 2001 From: "sung.goo.kim" Date: Mon, 14 Mar 2016 10:14:21 +0900 Subject: [PATCH] Revert "Remove default g_mainloop creation code on tizen" This reverts commit 2b5e7007b4ce8360a0fe3f1ca2a306aeea82ca71. Change-Id: I772036fa9b62d3feabf8904fcc16a482910cbb17 --- .../src/bt_edr_adapter/tizen/caedrnwmonitor.c | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c b/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c index 0c2bb6a..dd3e11d 100644 --- a/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c +++ b/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c @@ -35,6 +35,7 @@ #include "caqueueingthread.h" #include "caremotehandler.h" +static GMainLoop *g_mainloop = NULL; static ca_thread_pool_t g_threadPoolHandle = NULL; /** @@ -49,6 +50,13 @@ static CAEDRNetworkStatusCallback g_edrNetworkChangeCallback = NULL; */ static void CAEDRAdapterStateChangeCallback(int result, bt_adapter_state_e adapterState, void *userData); + +void *GMainLoopThread (void *param) +{ + g_main_loop_run(g_mainloop); + return NULL; +} + CAResult_t CAEDRInitializeNetworkMonitor(const ca_thread_pool_t threadPool) { OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "IN"); @@ -73,6 +81,19 @@ CAResult_t CAEDRStartNetworkMonitor() { OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "IN"); + g_mainloop = g_main_loop_new(NULL, 0); + if(!g_mainloop) + { + OIC_LOG(ERROR, EDR_ADAPTER_TAG, "g_main_loop_new failed\n"); + return CA_STATUS_FAILED; + } + + if (CA_STATUS_OK != ca_thread_pool_add_task(g_threadPoolHandle, GMainLoopThread, (void *) NULL)) + { + OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Failed to create thread!"); + return CA_STATUS_FAILED; + } + // Initialize Bluetooth service int err = bt_initialize(); if (BT_ERROR_NONE != err) @@ -103,6 +124,11 @@ CAResult_t CAEDRStopNetworkMonitor() OIC_LOG(ERROR, EDR_ADAPTER_TAG, "bt_adapter_set_state_changed_cb failed"); return CA_STATUS_FAILED; } + + if (g_mainloop) + { + g_main_loop_quit(g_mainloop); + } OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT"); return CA_STATUS_OK; } -- 2.7.4