diff --git a/js_concurrent_module/taskpool/worker.cpp b/js_concurrent_module/taskpool/worker.cpp index 52033a403f3f0bc4a097015b3809d604d83eb215..f3d2721f109bbe9fdd66661d0a1aeb8e06dc694b 100644 --- a/js_concurrent_module/taskpool/worker.cpp +++ b/js_concurrent_module/taskpool/worker.cpp @@ -472,7 +472,9 @@ void Worker::PerformTask(const uv_async_t* req) } return; } + auto workerEngine = reinterpret_cast(env); if (!worker->InitTaskPoolFunc(env, func, task)) { + workerEngine->ClearCurrentTaskInfo(); return; } worker->hasExecuted_ = true; @@ -486,10 +488,10 @@ void Worker::PerformTask(const uv_async_t* req) if (task->ShouldDeleteTask()) { delete task; } + workerEngine->ClearCurrentTaskInfo(); return; } napi_call_function(env, NapiHelper::GetGlobalObject(env), func, argsNum, argsArray, nullptr); - auto workerEngine = reinterpret_cast(env); workerEngine->ClearCurrentTaskInfo(); task->DecreaseRefCount(); task->StoreTaskDuration();