[Feature][T8TSK-149][AT]Optimize the AT+ELAPNMOD instruction

Change-Id: I1871287ddedee7c1294f9de96cdc9fc01d774a9b
diff --git a/src/lynq/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp b/src/lynq/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
index e9b67f0..28428e8 100755
--- a/src/lynq/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
@@ -563,7 +563,7 @@
                 }
                 /*get mccmnc*/
                 lynq_req_mccmnc(666);
-                usleep(500*1000);
+                lynq_wait_result_comeback();
                 /*get mccmnc*/
                 insert_apn_char(apn_info, id, mcc, mnc, apn, apntype, user, password, normalprotocol, roamingprotocol, carrier);
                 argv[1] = "0";
diff --git a/src/lynq/framework/lynq-ril-service/src/common.cpp b/src/lynq/framework/lynq-ril-service/src/common.cpp
index 71520f7..9f96f44 100755
--- a/src/lynq/framework/lynq-ril-service/src/common.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/common.cpp
@@ -86,6 +86,10 @@
 
 static std::int32_t token = 0;
 static std::mutex g_mutex;
+
+pthread_mutex_t s_state_change_mutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_cond_t s_state_change_cond = PTHREAD_COND_INITIALIZER;
+
 /*Warren add for SZZT 2021/11/14 start*
 ** record data registration
 */
@@ -358,6 +362,22 @@
     default_sim_voice = slot_id;
 }
 
+void lynq_send_result_already(void)
+{
+    RLOGD("send_imei_state_change");
+    pthread_mutex_lock(&s_state_change_mutex);
+    pthread_cond_signal(&s_state_change_cond);
+    pthread_mutex_unlock(&s_state_change_mutex);
+}
+
+void lynq_wait_result_comeback(void)
+{
+    RLOGD("wait_call_state");
+    pthread_mutex_lock(&s_state_change_mutex);
+    pthread_cond_wait(&s_state_change_cond,&s_state_change_mutex);
+    pthread_mutex_unlock(&s_state_change_mutex);
+}
+
 int get_default_sim_voice(){
     return default_sim_voice;
 }
diff --git a/src/lynq/framework/lynq-ril-service/src/common.h b/src/lynq/framework/lynq-ril-service/src/common.h
index 317d381..bdbe1c8 100755
--- a/src/lynq/framework/lynq-ril-service/src/common.h
+++ b/src/lynq/framework/lynq-ril-service/src/common.h
@@ -171,6 +171,9 @@
  */
 void lynq_output_info(const char* format,...);
 
+void lynq_send_result_already(void);
+void lynq_wait_result_comeback(void);
+
 void updateCardStatusV6(RIL_CardStatus_v6 *card_status,int slot);
 char* getAid(int slot);
 
diff --git a/src/lynq/framework/lynq-ril-service/src/ril.cpp b/src/lynq/framework/lynq-ril-service/src/ril.cpp
index 8110f5b..2b3b458 100755
--- a/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -4271,6 +4271,7 @@
                 case RIL_REQUEST_OPERATOR:
                 {
                     lynq_get_mccmnc(p, mccmnc);
+                    lynq_send_result_already();
                     break;
                 }
                default: