[Bugfix][API-845][Data]Increase the cycle interval to reduce the CPU usage

Change-Id: I81b9e60339749405baed87043fe877effed3e82e
(cherry picked from commit e6d25b3718b1155361bef685079078d413f04028)
diff --git a/lib/liblynq-data/lynq_data.cpp b/lib/liblynq-data/lynq_data.cpp
index ed8a9c7..6772e2d 100755
--- a/lib/liblynq-data/lynq_data.cpp
+++ b/lib/liblynq-data/lynq_data.cpp
@@ -65,9 +65,6 @@
 
 static pthread_mutex_t s_lynq_apn_change_mutex = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t s_lynq_apn_change_cond = PTHREAD_COND_INITIALIZER;
-
-pthread_t data_list_urc_vector_tid = -1;
-int data_urc_vector_status = 0;
 static pthread_mutex_t s_lynq_urc_vector_mutex = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t s_lynq_urc_vector_cond = PTHREAD_COND_INITIALIZER;
 /**g_lynq_data_sendto_mutex
@@ -75,6 +72,8 @@
 */
 static pthread_mutex_t g_lynq_data_sendto_mutex;
 
+static int data_waiting_status = 0;
+
 /**g_lynq_data_init_flag
 * @brief mark data initialization state
 * 0:deinit status
@@ -423,7 +422,7 @@
                 s_data_urc_wait_list.push_back(apnId);
                 pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
                 lynq_data_call_change_id = apnId;
-                //sendSignalPdnChange();
+                sendSignalPdnChange();
                 LYDBGLOG("data call state:%d",lynq_data_call);
                 if(lynq_data_call==1)
                 {
@@ -448,8 +447,8 @@
                     pthread_mutex_lock(&s_lynq_urc_vector_mutex);
                     s_data_urc_wait_list.push_back(apnId);
                     pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
+                    sendSignalPdnChange();
                 }
-                //sendSignalPdnChange();
                 LYDBGLOG("data call state:%d",lynq_data_call);
                 if(lynq_data_call==1)
                 {
@@ -491,64 +490,10 @@
     
 }
 
-void cleanup_urc_vector_mutex(void *arg)
-{
-    pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
-}
-
-void *thread_urc_vector()
-{
-    pthread_cleanup_push(cleanup_urc_vector_mutex, NULL);
-    while (data_urc_vector_status)
-    {
-        while (!s_data_urc_wait_list.empty())
-        {
-            sendSignalPdnChange();
-            usleep(10);
-        }
-        usleep(1);
-    }
-    pthread_cleanup_pop(0);
-}
-
-void cancel_urc_vector_signal_thread()
-{
-    int ret;
-    
-    data_urc_vector_status = 0;
-    pthread_mutex_lock(&s_lynq_urc_vector_mutex);
-    if (data_list_urc_vector_tid != -1)
-    {
-        ret = pthread_cancel(data_list_urc_vector_tid);
-        LYDBGLOG("pthread cancel ret = %d",ret);
-    }
-    pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
-
-    if (data_list_urc_vector_tid != -1)
-    {
-        ret = pthread_join(data_list_urc_vector_tid,NULL);
-        LYDBGLOG("pthread join ret = %d",ret);
-        data_list_urc_vector_tid = -1;
-    }
-    pthread_mutex_lock(&s_lynq_urc_vector_mutex);
-    s_data_urc_wait_list.clear();
-    pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
-}
-
 int create_urc_vector_signal_thread()
 {
     int ret;
-
-    data_urc_vector_status = 1;
     pthread_mutex_init(&s_lynq_urc_vector_mutex,NULL);
-    ret = pthread_create(&data_list_urc_vector_tid,NULL,thread_urc_vector,NULL);
-    if (ret < 0)
-    {
-        LYERRLOG("urc vector signal pthread create error");
-        lynq_deinit_data_urc_thread();
-        data_urc_vector_status = 0;
-        return -1;
-    }
     pthread_mutex_lock(&s_lynq_urc_vector_mutex);
     s_data_urc_wait_list.clear();
     pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
@@ -618,7 +563,9 @@
         LYERRLOG("lynq_deinit_data_urc_thread fail");
         return ret;
     }
-    cancel_urc_vector_signal_thread();
+    pthread_mutex_lock(&s_lynq_urc_vector_mutex);
+    s_data_urc_wait_list.clear();
+    pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
     return 0;
 }
 int lynq_setup_data_call(int *handle)
@@ -952,14 +899,27 @@
 }
 int lynq_wait_data_call_state_change(int *handle)
 {
-    
+    if (data_waiting_status == 1)
+    {
+        LYDBGLOG("some thread is waiting");
+        return -3;
+    }
+    LYDBGLOG("is empty :%d",s_data_urc_wait_list.empty());
+    if (s_data_urc_wait_list.empty())
+    {
+        LYDBGLOG("start wait");
+        data_waiting_status = 1;
+        waitPdnChange();
+    }
+    data_waiting_status = 0;
     std::vector<int>::iterator iter;
-    waitPdnChange();
 
     pthread_mutex_lock(&s_lynq_urc_vector_mutex);
     iter = s_data_urc_wait_list.begin();
-    *handle = s_data_urc_wait_list.front();
-
+    if (iter != s_data_urc_wait_list.end())
+    {
+        *handle = *iter;
+    }
     s_data_urc_wait_list.erase(iter);
     pthread_mutex_unlock(&s_lynq_urc_vector_mutex);