From: Petr Menšík Date: Mon, 26 Feb 2024 20:08:42 +0000 (+0100) Subject: Add normal task queue also to non-thread version X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74b170bf3c5c0a3898a018a98d0f30d02726b2c0;p=thirdparty%2Fbind9.git Add normal task queue also to non-thread version Non-thread builds are used by us for dhcp package. Make it working again. Related to [GL #4424] and [GL #4459]. --- diff --git a/lib/isc/task.c b/lib/isc/task.c index cc83269df24..38638850638 100644 --- a/lib/isc/task.c +++ b/lib/isc/task.c @@ -1115,7 +1115,7 @@ dispatch(isc__taskmgr_t *manager, isc_taskqueue_t qid) { } #else /* USE_WORKER_THREADS */ if (total_dispatch_count >= DEFAULT_TASKMGR_QUANTUM || - empty_readyq(manager)) + empty_readyq(manager, qid)) break; #endif /* USE_WORKER_THREADS */ XTHREADTRACE(isc_msgcat_get(isc_msgcat, ISC_MSGSET_TASK, @@ -1318,11 +1318,11 @@ dispatch(isc__taskmgr_t *manager, isc_taskqueue_t qid) { } #ifndef USE_WORKER_THREADS - ISC_LIST_APPENDLIST(manager->ready_tasks, new_ready_tasks, ready_link); - ISC_LIST_APPENDLIST(manager->ready_priority_tasks, new_priority_tasks, + ISC_LIST_APPENDLIST(manager->ready_tasks[isc_taskqueue_normal], new_ready_tasks, ready_link); + ISC_LIST_APPENDLIST(manager->ready_priority_tasks[isc_taskqueue_normal], new_priority_tasks, ready_priority_link); manager->tasks_ready += tasks_ready; - if (empty_readyq(manager)) + if (empty_readyq(manager, isc_taskqueue_normal)) manager->mode = isc_taskmgrmode_normal; #endif @@ -1713,7 +1713,7 @@ isc__taskmgr_ready(isc_taskmgr_t *manager0) { return (false); LOCK(&manager->lock); - is_ready = !empty_readyq(manager); + is_ready = !empty_readyq(manager, isc_taskqueue_normal); UNLOCK(&manager->lock); return (is_ready); @@ -1730,7 +1730,7 @@ isc__taskmgr_dispatch(isc_taskmgr_t *manager0) { if (manager == NULL) return (ISC_R_NOTFOUND); - dispatch(manager); + dispatch(manager, isc_taskqueue_normal); return (ISC_R_SUCCESS); }