]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Set quantum in dispatch
authorWitold Kręcicki <wpk@isc.org>
Fri, 23 Nov 2018 18:44:06 +0000 (18:44 +0000)
committerWitold Kręcicki <wpk@isc.org>
Sat, 24 Nov 2018 22:32:40 +0000 (22:32 +0000)
lib/isc/task.c

index f9005e5d48a01cc0603cd3e4027a1c39f03c9d26..b3e8d37fdcf3fdcac2b1cc91fe6da845b18188dd 100644 (file)
@@ -292,7 +292,7 @@ isc_task_create_bound(isc_taskmgr_t *manager0, unsigned int quantum,
        INIT_LIST(task->events);
        INIT_LIST(task->on_shutdown);
        task->nevents = 0;
-       task->quantum = (quantum > 0) ? quantum : DEFAULT_QUANTUM;
+       task->quantum = quantum;
        task->flags = 0;
        task->now = 0;
        isc_time_settoepoch(&task->tnow);
@@ -1097,6 +1097,7 @@ dispatch(isc__taskmgr_t *manager, unsigned int threadid) {
                task = pop_readyq(manager, threadid);
                if (task != NULL) {
                        unsigned int dispatch_count = 0;
+                       unsigned int quantum = (task->quantum > 0) ? task->quantum : DEFAULT_QUANTUM;
                        bool done = false;
                        bool requeue = false;
                        bool finished = false;
@@ -1203,7 +1204,7 @@ dispatch(isc__taskmgr_t *manager, unsigned int threadid) {
                                        } else
                                                task->state = task_state_idle;
                                        done = true;
-                               } else if (dispatch_count >= task->quantum) {
+                               } else if (dispatch_count >= quantum) {
                                        /*
                                         * Our quantum has expired, but
                                         * there is more work to be done.