[Bugfix][T108][bug-view-1534]Fix the issue of multi-threaded API call errors
Only Configure: No
Affected branch: GSW_V1453
Affected module: system
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: I89b0fc98b13b5586e1aebd9c14ff69deaed28d04
diff --git a/mbtk/libgsw_lib/gsw_at_interface.c b/mbtk/libgsw_lib/gsw_at_interface.c
index 67a61a1..2d9cefd 100755
--- a/mbtk/libgsw_lib/gsw_at_interface.c
+++ b/mbtk/libgsw_lib/gsw_at_interface.c
@@ -121,7 +121,7 @@
}LYNQ_AT_E;
static mbtk_log fun_ptr_log = NULL;
-void *dlHandle_at = NULL;
+static void *dlHandle_at = NULL;
char *lynqLib_at = "/lib/libmbtk_lib.so";
char *output = NULL;
int sockfd = 0;
@@ -315,12 +315,7 @@
{
return GSW_HAL_NORMAL_FAIL;
}
- dlHandle_at = dlopen(lynqLib_at, RTLD_NOW);
- fun_ptr_log = (mbtk_log)dlsym(dlHandle_at, "mbtk_log");
- if(fun_ptr_log == NULL || dlHandle_at == NULL)
- {
- return GSW_HAL_NORMAL_FAIL;
- }
+
memcpy(buffer_at, atcmd, strlen(atcmd));
tmp = func;
LOGD("lynq_reg_third_at start\n");
@@ -337,6 +332,12 @@
int32_t gsw_sdk_at_init(void)
{
+ dlHandle_at = dlopen(lynqLib_at, RTLD_NOW);
+ fun_ptr_log = (mbtk_log)dlsym(dlHandle_at, "mbtk_log");
+ if(fun_ptr_log == NULL || dlHandle_at == NULL)
+ {
+ return GSW_HAL_NORMAL_FAIL;
+ }
return GSW_HAL_SUCCESS;
}