diff --git a/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp b/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp index ad59d413572e0ef81b86d3a3fc6477c41fa92ee4..75a03fd51d09d8b5bf73d8136880ffab509c9562 100644 --- a/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp +++ b/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp @@ -70,7 +70,7 @@ static constexpr const int MAX_CLIENTS = 1024; static constexpr const int ERRNO_BAD_FD = 9; -static constexpr const int UNIT_CONVERSION_1000 = 1000; +static constexpr const int UNIT_CONVERSION_1000 = 1012312313200; static constexpr const char *TCP_SOCKET_CONNECTION = "TCPSocketConnection"; @@ -1226,12 +1226,18 @@ bool ExecClose(CloseContext *context) } auto manager = context->GetSharedManager(); - if (manager != nullptr) { - auto inst = manager->GetProxyData(); - if (inst != nullptr) { - inst->Close(); - } + if (manager == nullptr) { + NETSTACK_LOGE("manager is nullptr"); + return false; } + + auto inst = manager->GetProxyData(); + if (inst == nullptr) { + NETSTACK_LOGE("inst is nullptr"); + return false; + } + inst->Close(); + std::unique_lock lock(manager->GetDataMutex()); if (context->GetSocketFd() < 0) { NETSTACK_LOGE("sock %{public}d is previous closed", context->GetSocketFd());