From e0136141ed0785f8d65031c96b29076411922864 Mon Sep 17 00:00:00 2001 From: liaoxingxing Date: Wed, 9 Oct 2024 21:01:33 +0800 Subject: [PATCH] =?UTF-8?q?cherry=20pick=20169deca=20from=20https://gitee.?= =?UTF-8?q?com/liaoxingbin/third=5Fparty=5Flibuv/pulls/196=20=E5=9C=A8uv?= =?UTF-8?q?=5F=5Fffrt=5Fwork=E4=B8=AD=E7=A7=BB=E9=99=A4lfields=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liaoxingxing --- src/threadpool.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/threadpool.c b/src/threadpool.c index 3035c4e..2b6cd56 100644 --- a/src/threadpool.c +++ b/src/threadpool.c @@ -768,13 +768,8 @@ void uv__ffrt_work(ffrt_executor_task_t* data, ffrt_qos_t qos) #ifdef UV_STATISTIC uv__post_statistic_work(w, WORK_END); #endif - uv__loop_internal_fields_t* lfields = uv__get_internal_fields(loop); rdlock_closed_uv_loop_rwlock(); - if (loop->magic != UV_LOOP_MAGIC - || !lfields - || qos >= ARRAY_SIZE(lfields->wq_sub) - || !lfields->wq_sub[qos].next - || !lfields->wq_sub[qos].prev) { + if (loop->magic != UV_LOOP_MAGIC) { rdunlock_closed_uv_loop_rwlock(); UV_LOGE("uv_loop(%{public}zu:%{public}#x) in task(%p:%p) is invalid", (size_t)loop, loop->magic, req->work_cb, req->after_work_cb); @@ -790,6 +785,7 @@ void uv__ffrt_work(ffrt_executor_task_t* data, ffrt_qos_t qos) (UV_EVENT_MAGIC_OFFSET << UV_EVENT_MAGIC_OFFSETBITS)); addr->post_task_func(addr->event_handler, uv__task_done_wrapper, (void*)w, status, qos); } else { + uv__loop_internal_fields_t* lfields = uv__get_internal_fields(loop); uv__queue_insert_tail(&(lfields->wq_sub[qos]), &w->wq); uv_async_send(&loop->wq_async); } -- Gitee