[ITC][device][Non-ACR][Fix incorrect g_main_loop_quit usage] 77/217777/1
authorINSUN PYO <insun.pyo@samsung.com>
Thu, 24 Oct 2019 08:59:25 +0000 (17:59 +0900)
committershobhit verma <shobhit.v@samsung.com>
Thu, 14 Nov 2019 07:13:29 +0000 (07:13 +0000)
Change-Id: I552adea5cdf2c59415ea52d5996beb5510a5ee81
(cherry picked from commit 50d44359f55d6dc81c37acd75a085851d194487a)

src/itc/device/ITs-device.c

index b7715cf1900a6e5dbb1955d7de20a850e2e78755..de5d170b40f63974fe2d5f28f7437a02172b1e16 100755 (executable)
@@ -87,15 +87,12 @@ void DeviceChangedCallback(device_callback_e type, void *value, void *user_data)
        FPRINTF("[Line : %d][%s] DeviceChangedCallback is called\\n", __LINE__, API_NAMESPACE);
 #endif
 
-       g_bDeviceChangedCallback = true;
-       if (g_pDeviceMainLoop)
-       {
-               g_main_loop_quit(g_pDeviceMainLoop);
-               g_main_loop_unref(g_pDeviceMainLoop);
-               g_pDeviceMainLoop = NULL;
-       }
+       /* stop main loop */
+       g_main_loop_quit(g_pDeviceMainLoop);
 
        g_ReturnValueState = false;
+       g_bDeviceChangedCallback = true;
+
        int val = (int) value;
        switch ( type ) {
                case DEVICE_CALLBACK_BATTERY_CAPACITY:
@@ -144,12 +141,8 @@ void DeviceChangedCallback(device_callback_e type, void *value, void *user_data)
 */
 gboolean DeviceTimeout(gpointer data)
 {
-       if ( g_pDeviceMainLoop )
-       {
-               g_main_loop_quit( g_pDeviceMainLoop );
-               g_main_loop_unref( g_pDeviceMainLoop );
-               g_pDeviceMainLoop = NULL;
-       }
+       /* stop main loop */
+       g_main_loop_quit( g_pDeviceMainLoop );
 
        nDeviceTimeoutId = 0;
 
@@ -265,6 +258,7 @@ int ITc_device_add_remove_callback_p(void)
                        g_pDeviceMainLoop = g_main_loop_new(NULL, false);
                        nDeviceTimeoutId = g_timeout_add(TIMEOUT_CB, DeviceTimeout, g_pDeviceMainLoop);
                        g_main_loop_run(g_pDeviceMainLoop);
+                       g_main_loop_unref(g_pDeviceMainLoop);
                        g_pDeviceMainLoop = NULL;
                        if (nDeviceTimeoutId)
                        {
@@ -272,7 +266,6 @@ int ITc_device_add_remove_callback_p(void)
                                nDeviceTimeoutId = 0;
                        }
 
-
                        if ( g_bDeviceChangedCallback == false )
                        {
                                FPRINTF("[Line : %d][%s] device_add_callback failed to invoke callback for enum = %s\\n", __LINE__, API_NAMESPACE, DeviceGetCallbackType(callback_type[enum_counter]));
@@ -322,6 +315,7 @@ int ITc_device_add_remove_callback_p(void)
                        g_pDeviceMainLoop = g_main_loop_new(NULL, false);
                        nDeviceTimeoutId = g_timeout_add(TIMEOUT_CB, DeviceTimeout, g_pDeviceMainLoop);
                        g_main_loop_run(g_pDeviceMainLoop);
+                       g_main_loop_unref(g_pDeviceMainLoop);
                        g_pDeviceMainLoop = NULL;
                        if (nDeviceTimeoutId)
                        {