[wifi] Modified logic so that callback is sent to their respective thread
[platform/core/api/wifi.git] / src / libnetwork.c
index 1118035..b4b0c63 100755 (executable)
@@ -1287,6 +1287,8 @@ guint _wifi_callback_add(GSourceFunc func, gpointer user_data)
 {
        guint id;
        struct managed_idle_data *data;
+       GMainContext *context;
+       GSource *src;
 
        if (!func)
                return 0;
@@ -1298,8 +1300,12 @@ guint _wifi_callback_add(GSourceFunc func, gpointer user_data)
        data->func = func;
        data->user_data = user_data;
 
-       id = g_idle_add_full(G_PRIORITY_DEFAULT_IDLE, __wifi_idle_cb, data,
-                       __wifi_idle_destroy_cb);
+       context = g_main_context_get_thread_default();
+       src = g_idle_source_new();
+       g_source_set_callback(src, __wifi_idle_cb, data, __wifi_idle_destroy_cb);
+       id = g_source_attach(src, context);
+       g_source_unref(src);
+
        if (!id) {
                g_free(data);
                return id;