[Bugfix][T106BUG-660]Fixed the problem that the callback function was not called after using the qser_data_call_start_async

Only Configure: No
Affected branch: master
Affected module: data
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No

Change-Id: Ie4cc993d274714e7c0a48c31edd927f8fae7a2be
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
index fc6c6a8..7b29791 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -730,7 +730,7 @@
                         break;
                     }
                 }
-                if(j == num)
+                if(j == num && lynq_apn_table[i].cid != 0)
                 {
                     LYINFLOG("need delete lynq_apn_table[%d]\n", i);
                     bzero(lynq_apn_table[i].apnType,LYNQ_APN_TYPE_MAX_LEN);//async clean
@@ -1219,11 +1219,17 @@
 
     char *tmp_msg = NULL;
     int len = 0;
+    int unlock_flag = 0;
 
     LYINFLOG("[data_thread_rc_recv]: in thread_rc_recv");
     while(module_rc_status)
     {
         pthread_mutex_lock(&s_lynq_rc_vector_mutex);
+        if(unlock_flag == 1)
+        {
+            pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
+        }
+        unlock_flag=1;
         pthread_cond_wait(&s_lynq_rc_vector_cond,&s_lynq_rc_vector_mutex);
         pthread_mutex_unlock(&s_lynq_rc_vector_mutex);
         LYINFLOG("[data_thread_rc_recv]: pthread_mutex_unlock");
@@ -1255,7 +1261,7 @@
             }
             continue;
         }
-        pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
+
 
         bzero(type,LYNQ_TYPE_MAX_LEN);
         bzero(ifaceName,LYNQ_IFACE_NAME_MAX_LEN);