diff --git a/frameworks/js/avrecorder/avrecorder_callback.cpp b/frameworks/js/avrecorder/avrecorder_callback.cpp index 760b324e41a4fe781743c06dff3f08403c87aa81..ea5aa52eccc0bb9d2f2eac17e6d91d339017a1e1 100644 --- a/frameworks/js/avrecorder/avrecorder_callback.cpp +++ b/frameworks/js/avrecorder/avrecorder_callback.cpp @@ -139,12 +139,12 @@ void AVRecorderCallback::OnJsStateCallBack(AVRecordJsCallback *jsCb) const }; work->data = reinterpret_cast(jsCb); - int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { + int ret = uv_queue_work_with_qos(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { // Js Thread CHECK_AND_RETURN_LOG(work != nullptr, "work is nullptr"); AVRecordJsCallback *event = reinterpret_cast(work->data); std::string request = event->callbackName; - MEDIA_LOGI("uv_queue_work start, state changes to %{public}s", event->state.c_str()); + MEDIA_LOGI("uv_queue_work_with_qos start, state changes to %{public}s", event->state.c_str()); do { CHECK_AND_BREAK_LOG(status != UV_ECANCELED, "%{public}s canceled", request.c_str()); std::shared_ptr ref = event->autoRef.lock(); @@ -176,8 +176,8 @@ void AVRecorderCallback::OnJsStateCallBack(AVRecordJsCallback *jsCb) const } while (0); delete event; delete work; - }); - CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work task"); + }, uv_qos_user_initiated); + CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work_with_qos task"); CANCEL_SCOPE_EXIT_GUARD(0); CANCEL_SCOPE_EXIT_GUARD(1); @@ -201,13 +201,13 @@ void AVRecorderCallback::OnJsErrorCallBack(AVRecordJsCallback *jsCb) const work->data = reinterpret_cast(jsCb); // async callback, jsWork and jsWork->data should be heap object. - int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { + int ret = uv_queue_work_with_qos(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { // Js Thread CHECK_AND_RETURN_LOG(work != nullptr, "work is nullptr"); CHECK_AND_RETURN_LOG(work->data != nullptr, "workdata is nullptr"); AVRecordJsCallback *event = reinterpret_cast(work->data); std::string request = event->callbackName; - MEDIA_LOGI("uv_queue_work start, errorcode:%{public}d , errormessage:%{public}s:", + MEDIA_LOGI("uv_queue_work_with_qos start, errorcode:%{public}d , errormessage:%{public}s:", event->errorCode, event->errorMsg.c_str()); do { CHECK_AND_BREAK_LOG(status != UV_ECANCELED, "%{public}s canceled", request.c_str()); @@ -242,8 +242,8 @@ void AVRecorderCallback::OnJsErrorCallBack(AVRecordJsCallback *jsCb) const } while (0); delete event; delete work; - }); - CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work task"); + }, uv_qos_user_initiated); + CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work_with_qos task"); CANCEL_SCOPE_EXIT_GUARD(0); CANCEL_SCOPE_EXIT_GUARD(1); diff --git a/frameworks/js/avrecorder/avrecorder_napi.cpp b/frameworks/js/avrecorder/avrecorder_napi.cpp index d997e38aa1ddc1226dd8530750dc911ab8fb42ff..8c194cdb001462734ca8a8656f3b6f6441b8fc52 100644 --- a/frameworks/js/avrecorder/avrecorder_napi.cpp +++ b/frameworks/js/avrecorder/avrecorder_napi.cpp @@ -183,7 +183,7 @@ napi_value AVRecorderNapi::JsCreateAVRecorder(napi_env env, napi_callback_info i napi_create_string_utf8(env, "JsCreateAVRecorder", NAPI_AUTO_LENGTH, &resource); NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); MEDIA_LOGI("JsCreateAVRecorder success"); @@ -258,7 +258,7 @@ napi_value AVRecorderNapi::JsPrepare(napi_env env, napi_callback_info info) } MEDIA_LOGI("The js thread of prepare finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); MEDIA_LOGI("Js %{public}s End", opt.c_str()); @@ -382,7 +382,7 @@ napi_value AVRecorderNapi::JsGetAVRecorderProfile(napi_env env, napi_callback_in } MEDIA_LOGI("The js thread of prepare finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); MEDIA_LOGI("Js %{public}s End", opt.c_str()); @@ -484,7 +484,7 @@ napi_value AVRecorderNapi::JsSetAVRecorderConfig(napi_env env, napi_callback_inf } MEDIA_LOGI("The js thread of prepare finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); MEDIA_LOGI("Js %{public}s End", opt.c_str()); @@ -662,7 +662,7 @@ napi_value AVRecorderNapi::ExecuteByPromise(napi_env env, napi_callback_info inf } MEDIA_LOGI("The js thread of %{public}s finishes execution and returns", asyncCtx->opt_.c_str()); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); MEDIA_LOGI("Js %{public}s End", opt.c_str()); diff --git a/frameworks/js/soundpool/src/soundpool_callback_napi.cpp b/frameworks/js/soundpool/src/soundpool_callback_napi.cpp index c71b0d942f78d10f9d3e5c436e118569803a61d8..c00aa8628e733e8a3cd06cba1af9ce212b46908c 100644 --- a/frameworks/js/soundpool/src/soundpool_callback_napi.cpp +++ b/frameworks/js/soundpool/src/soundpool_callback_napi.cpp @@ -145,7 +145,7 @@ void SoundPoolCallBackNapi::OnJsErrorCallBack(SoundPoolJsCallBack *jsCb) const }; work->data = reinterpret_cast(jsCb); // async callback, jsWork and jsWork->data should be heap object. - int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { + int ret = uv_queue_work_with_qos(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { // Js Thread CHECK_AND_RETURN_LOG(work != nullptr, "work is nullptr"); CHECK_AND_RETURN_LOG(work->data != nullptr, "workdata is nullptr"); @@ -182,8 +182,8 @@ void SoundPoolCallBackNapi::OnJsErrorCallBack(SoundPoolJsCallBack *jsCb) const } while (0); delete event; delete work; - }); - CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work task"); + }, uv_qos_user_initiated); + CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work_with_qos task"); CANCEL_SCOPE_EXIT_GUARD(0); CANCEL_SCOPE_EXIT_GUARD(1); } @@ -204,7 +204,7 @@ void SoundPoolCallBackNapi::OnJsloadCompletedCallBack(SoundPoolJsCallBack *jsCb) }; work->data = reinterpret_cast(jsCb); // async callback, jsWork and jsWork->data should be heap object. - int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { + int ret = uv_queue_work_with_qos(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { CHECK_AND_RETURN_LOG(work != nullptr, "work is nullptr"); CHECK_AND_RETURN_LOG(work->data != nullptr, "workdata is nullptr"); SoundPoolJsCallBack *event = reinterpret_cast(work->data); @@ -234,8 +234,8 @@ void SoundPoolCallBackNapi::OnJsloadCompletedCallBack(SoundPoolJsCallBack *jsCb) } while (0); delete event; delete work; - }); - CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work task"); + }, uv_qos_user_initiated); + CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work_with_qos task"); CANCEL_SCOPE_EXIT_GUARD(0); CANCEL_SCOPE_EXIT_GUARD(1); } @@ -256,7 +256,7 @@ void SoundPoolCallBackNapi::OnJsplayCompletedCallBack(SoundPoolJsCallBack *jsCb) }; work->data = reinterpret_cast(jsCb); // async callback, jsWork and jsWork->data should be heap object. - int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { + int ret = uv_queue_work_with_qos(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { // Js Thread CHECK_AND_RETURN_LOG(work != nullptr, "work is nullptr"); CHECK_AND_RETURN_LOG(work->data != nullptr, "workdata is nullptr"); @@ -284,8 +284,8 @@ void SoundPoolCallBackNapi::OnJsplayCompletedCallBack(SoundPoolJsCallBack *jsCb) } while (0); delete event; delete work; - }); - CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work task"); + }, uv_qos_user_initiated); + CHECK_AND_RETURN_LOG(ret == 0, "fail to uv_queue_work_with_qos task"); CANCEL_SCOPE_EXIT_GUARD(0); CANCEL_SCOPE_EXIT_GUARD(1); diff --git a/frameworks/js/soundpool/src/soundpool_napi.cpp b/frameworks/js/soundpool/src/soundpool_napi.cpp index 12fab0fcd52805eecaad75ebffec147b64c9e187..cc896438f84d615de631318f8b67bb085ba6e4a3 100644 --- a/frameworks/js/soundpool/src/soundpool_napi.cpp +++ b/frameworks/js/soundpool/src/soundpool_napi.cpp @@ -155,7 +155,7 @@ napi_value SoundPoolNapi::JsCreateSoundPool(napi_env env, napi_callback_info inf napi_create_string_utf8(env, "JsCreateSoundPool", NAPI_AUTO_LENGTH, &resource); NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); return result; @@ -204,7 +204,7 @@ napi_value SoundPoolNapi::JsLoad(napi_env env, napi_callback_info info) NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); } - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); return result; } @@ -249,7 +249,7 @@ napi_value SoundPoolNapi::JsPlay(napi_env env, napi_callback_info info) NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); } - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); return result; } @@ -288,11 +288,11 @@ napi_value SoundPoolNapi::JsStop(napi_env env, napi_callback_info info) } MEDIA_LOGI("The js thread of stop finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } else { NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } asyncCtx.release(); @@ -336,11 +336,11 @@ napi_value SoundPoolNapi::JsSetLoop(napi_env env, napi_callback_info info) } MEDIA_LOGI("The js thread of SetLoop finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } else { NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } asyncCtx.release(); return result; @@ -385,11 +385,11 @@ napi_value SoundPoolNapi::JsSetPriority(napi_env env, napi_callback_info info) } MEDIA_LOGI("The js thread of SetPriority finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } else { NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } asyncCtx.release(); return result; @@ -425,11 +425,11 @@ napi_value SoundPoolNapi::JsSetRate(napi_env env, napi_callback_info info) } MEDIA_LOGI("The js thread of SetRate finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } else { NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } asyncCtx.release(); return result; @@ -466,11 +466,11 @@ napi_value SoundPoolNapi::JsSetVolume(napi_env env, napi_callback_info info) } MEDIA_LOGI("The js thread of SetVolume finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } else { NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } asyncCtx.release(); return result; @@ -511,11 +511,11 @@ napi_value SoundPoolNapi::JsUnload(napi_env env, napi_callback_info info) } MEDIA_LOGI("The js thread of Unload finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } else { NAPI_CALL(env, napi_create_async_work(env, nullptr, resource, [](napi_env env, void* data) {}, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); } asyncCtx.release(); @@ -551,7 +551,7 @@ napi_value SoundPoolNapi::JsRelease(napi_env env, napi_callback_info info) asyncCtx->napi->CancelCallback(); MEDIA_LOGI("The js thread of JsRelease finishes execution and returns"); }, MediaAsyncContext::CompleteCallback, static_cast(asyncCtx.get()), &asyncCtx->work)); - NAPI_CALL(env, napi_queue_async_work(env, asyncCtx->work)); + NAPI_CALL(env, napi_queue_async_work_with_qos(env, asyncCtx->work, napi_qos_user_initiated)); asyncCtx.release(); return result;