mirror of
https://gitee.com/openharmony/request_request
synced 2025-02-21 07:41:24 +00:00
commit
7e1f1bd92b
@ -18,8 +18,9 @@
|
||||
#include <cstddef>
|
||||
#include <curl/curl.h>
|
||||
#include <pthread.h>
|
||||
#include "log.h"
|
||||
|
||||
static pthread_mutex_t *lockarray;
|
||||
static pthread_mutex_t *lockArray = nullptr;
|
||||
|
||||
#ifdef USE_OPENSSL
|
||||
#include <openssl/crypto.h>
|
||||
@ -29,9 +30,9 @@ static void LockCallback(int mode, int type, char *file, int line)
|
||||
(void)file;
|
||||
(void)line;
|
||||
if (mode & CRYPTO_LOCK) {
|
||||
pthread_mutex_lock(&(lockarray[type]));
|
||||
pthread_mutex_lock(&(lockArray[type]));
|
||||
} else {
|
||||
pthread_mutex_unlock(&(lockarray[type]));
|
||||
pthread_mutex_unlock(&(lockArray[type]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,9 +50,13 @@ static void InitLocks(void)
|
||||
LOCK_CALLBACK lockCallback;
|
||||
threadIdCallback = ThreadIdCallback;
|
||||
lockCallback = LockCallback;
|
||||
lockarray = (pthread_mutex_t *)OPENSSL_malloc(CRYPTO_num_locks() * sizeof(pthread_mutex_t));
|
||||
lockArray = (pthread_mutex_t *)OPENSSL_malloc(CRYPTO_num_locks() * sizeof(pthread_mutex_t));
|
||||
if (lockArray == nullptr) {
|
||||
DOWNLOAD_HILOGE("failed to create openssl lock");
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < CRYPTO_num_locks(); i++) {
|
||||
pthread_mutex_init(&(lockarray[i]), NULL);
|
||||
pthread_mutex_init(&(lockArray[i]), NULL);
|
||||
}
|
||||
CRYPTO_set_id_callback(threadIdCallback);
|
||||
CRYPTO_set_locking_callback(lockCallback);
|
||||
@ -62,9 +67,9 @@ static void KillLocks(void)
|
||||
int i;
|
||||
CRYPTO_set_locking_callback(NULL);
|
||||
for (i = 0; i < CRYPTO_num_locks(); i++) {
|
||||
pthread_mutex_destroy(&(lockarray[i]));
|
||||
pthread_mutex_destroy(&(lockArray[i]));
|
||||
}
|
||||
OPENSSL_free(lockarray);
|
||||
OPENSSL_free(lockArray);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -52,12 +52,21 @@ void DownloadManager::CallFunctionAsync(napi_env env, napi_ref func, const ArgsG
|
||||
{
|
||||
uv_loop_s *loop = nullptr;
|
||||
napi_get_uv_event_loop(env, &loop);
|
||||
|
||||
if (loop == nullptr) {
|
||||
DOWNLOAD_HILOGE("Failed to get uv event loop");
|
||||
return;
|
||||
}
|
||||
auto *work = new (std::nothrow) uv_work_t;
|
||||
if (work == nullptr) {
|
||||
DOWNLOAD_HILOGE("Failed to create uv work");
|
||||
return;
|
||||
}
|
||||
auto *data = new (std::nothrow) CallFunctionData;
|
||||
if (data == nullptr) {
|
||||
DOWNLOAD_HILOGE("Failed to create CallFunctionData");
|
||||
delete work;
|
||||
return;
|
||||
}
|
||||
data->env_ = env;
|
||||
data->func_ = func;
|
||||
data->generator_ = generator;
|
||||
|
@ -433,7 +433,6 @@ napi_status UploadTaskNapi::GetContext(napi_env env, napi_value *argv, int& para
|
||||
|
||||
void UploadTaskNapi::OnSystemSuccess(napi_env env, napi_ref ref, Upload::UploadResponse &response)
|
||||
{
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "OnSystemSuccess enter");
|
||||
uv_loop_s *loop_ = nullptr;
|
||||
napi_get_uv_event_loop(env, &loop_);
|
||||
if (loop_ == nullptr) {
|
||||
@ -442,12 +441,12 @@ void UploadTaskNapi::OnSystemSuccess(napi_env env, napi_ref ref, Upload::UploadR
|
||||
}
|
||||
uv_work_t *work = new (std::nothrow) uv_work_t;
|
||||
if (work == nullptr) {
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "Failed to create uv work");
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to create uv work");
|
||||
return;
|
||||
}
|
||||
SystemSuccessCallback *successCallback = new (std::nothrow)SystemSuccessCallback;
|
||||
SystemSuccessCallback *successCallback = new (std::nothrow)SystemSuccessCallback();
|
||||
if (successCallback == nullptr) {
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "Failed to create successCallback");
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to create successCallback");
|
||||
delete work;
|
||||
return;
|
||||
}
|
||||
@ -486,26 +485,29 @@ void UploadTaskNapi::OnSystemSuccess(napi_env env, napi_ref ref, Upload::UploadR
|
||||
|
||||
void UploadTaskNapi::OnSystemFail(napi_env env, napi_ref ref, std::string &data, int32_t &code)
|
||||
{
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "OnSystemFail enter");
|
||||
uv_loop_s *loop_ = nullptr;
|
||||
napi_get_uv_event_loop(env, &loop_);
|
||||
if (loop_ == nullptr) {
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "Failed to get uv event loop");
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to get uv event loop");
|
||||
return;
|
||||
}
|
||||
uv_work_t *work = new (std::nothrow) uv_work_t;
|
||||
if (work == nullptr) {
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "Failed to create uv work");
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to create uv work");
|
||||
return;
|
||||
}
|
||||
SystemFailCallback *failCallback = new (std::nothrow) SystemFailCallback();
|
||||
if (failCallback == nullptr) {
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to create fail callback");
|
||||
delete work;
|
||||
return;
|
||||
}
|
||||
SystemFailCallback *failCallback = new (std::nothrow) SystemFailCallback;
|
||||
failCallback->data = data;
|
||||
failCallback->code = code;
|
||||
failCallback->env = env;
|
||||
failCallback->ref = ref;
|
||||
work->data = (void *)failCallback;
|
||||
int ret = uv_queue_work(loop_, work, [](uv_work_t *work) {},
|
||||
[](uv_work_t *work, int status) {
|
||||
int ret = uv_queue_work(loop_, work, [](uv_work_t *work) {}, [](uv_work_t *work, int status) {
|
||||
SystemFailCallback *failCallback = reinterpret_cast<SystemFailCallback *>(work->data);
|
||||
napi_handle_scope scope = nullptr;
|
||||
napi_open_handle_scope(failCallback->env, &scope);
|
||||
@ -535,19 +537,23 @@ void UploadTaskNapi::OnSystemFail(napi_env env, napi_ref ref, std::string &data,
|
||||
|
||||
void UploadTaskNapi::OnSystemComplete(napi_env env, napi_ref ref)
|
||||
{
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "OnSystemComplete enter");
|
||||
uv_loop_s *loop_ = nullptr;
|
||||
napi_get_uv_event_loop(env, &loop_);
|
||||
if (loop_ == nullptr) {
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "Failed to get uv event loop");
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to get uv event loop");
|
||||
return;
|
||||
}
|
||||
uv_work_t *work = new (std::nothrow) uv_work_t;
|
||||
if (work == nullptr) {
|
||||
UPLOAD_HILOGD(UPLOAD_MODULE_JS_NAPI, "Failed to create uv work");
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to create uv work");
|
||||
return;
|
||||
}
|
||||
SystemCompleteCallback *completeCallback = new (std::nothrow)SystemCompleteCallback();
|
||||
if (completeCallback == nullptr) {
|
||||
UPLOAD_HILOGE(UPLOAD_MODULE_JS_NAPI, "Failed to create complete callback");
|
||||
delete work;
|
||||
return;
|
||||
}
|
||||
SystemCompleteCallback *completeCallback = new (std::nothrow)SystemCompleteCallback;
|
||||
completeCallback->env = env;
|
||||
completeCallback->ref = ref;
|
||||
work->data = (void *)completeCallback;
|
||||
|
Loading…
x
Reference in New Issue
Block a user