diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 4b8bce8..5ee8afc 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -827,27 +827,6 @@
         usleep(300*1000);
         system("wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=ap0 disconnect");
     }
-    if (g_ap_watcher_pid == 0 )
-    {
-        ret=pthread_create(&g_ap_watcher_pid,NULL,APWatcherThreadProc,NULL);
-        if(ret<0)
-        {
-            RLOGE("[wifi error]creat APWatcherThreadProc fail");
-            ret = -1;
-            goto out_enable;
-        }
-    }
-    
-    RLOGD("creat APWatcherTheradProc susccs");
-    if (g_sta_watcher_pid == 0 ) {
-        ret=pthread_create(&g_sta_watcher_pid,NULL,STAWatcherThreadProc,NULL);
-        if(ret<0)
-        {
-            RLOGE("[wifi error]creat STAWatcherThreadProc fail");
-            ret = -1;
-            goto out_enable;
-        }
-    }
 
     if (g_global_watcher_pid == 0 ) // this thread will not exit when lynq_wifi_disable called,to avoid dead lock,take care
     {
@@ -860,16 +839,6 @@
         }
     }
 
-    RLOGD("creat STAWatcherTheradProc susccs");
-    for (i=0; i<10; i++)
-    {
-        usleep(300*1000);
-        if (g_ap_watcher_started_flag == 1 && g_sta_watcher_started_flag == 1)
-        {
-            break;
-        }
-    }
-
     g_lynq_wpa_ctrl[0] = malloc(sizeof (struct local_wpa_ctrl));
     g_lynq_wpa_ctrl[1] = malloc(sizeof (struct local_wpa_ctrl));
     memset(g_lynq_wpa_ctrl[0], 0 , sizeof(struct local_wpa_ctrl));
@@ -3205,9 +3174,24 @@
         return -1;
     }
 
+    pthread_mutex_lock(&s_check_wpa_ctrl_mutex);
     g_ap_callback_priv = priv;
     g_ap_callback_func = cb;
 
+    if (g_ap_watcher_pid == 0 )
+    {
+        if(pthread_create(&g_ap_watcher_pid,NULL,APWatcherThreadProc,NULL) < 0)
+        {
+            g_ap_watcher_pid = 0;
+            pthread_mutex_unlock(&s_check_wpa_ctrl_mutex);
+            RLOGE("[wifi error]creat APWatcherThreadProc fail");
+            return -1;
+        }
+    }
+
+    pthread_mutex_unlock(&s_check_wpa_ctrl_mutex);
+    RLOGD("creat APWatcherTheradProc susccs");
+
     return 0;
 }
 
@@ -3228,9 +3212,22 @@
         return -1;
     }
 
+    pthread_mutex_lock(&s_check_wpa_ctrl_mutex);
     g_sta_callback_priv = priv;
     g_sta_callback_func = cb;
 
+    if (g_sta_watcher_pid == 0 ) {
+        if(pthread_create(&g_sta_watcher_pid,NULL,STAWatcherThreadProc,NULL) < 0)
+        {
+            g_sta_watcher_pid = 0;
+            pthread_mutex_unlock(&s_check_wpa_ctrl_mutex);
+            RLOGE("[wifi error]creat STAWatcherThreadProc fail");
+            return -1;
+        }
+    }
+
+    pthread_mutex_unlock(&s_check_wpa_ctrl_mutex);
+    RLOGD("creat STAWatcherTheradProc susccs");
     return 0;
 }
 
