[master] b2def9fa5 polish: move duplicated code into pool_getidleworker()
Nils Goroll
nils.goroll at uplex.de
Tue Apr 23 14:54:08 UTC 2019
commit b2def9fa591ddcdeca6e79c29265a4f989eefb7b
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Tue Apr 23 16:50:18 2019 +0200
polish: move duplicated code into pool_getidleworker()
it should remove the worker it returns from the idle queue for clarity
diff --git a/bin/varnishd/cache/cache_wrk.c b/bin/varnishd/cache/cache_wrk.c
index c6a37b862..2481f9cdf 100644
--- a/bin/varnishd/cache/cache_wrk.c
+++ b/bin/varnishd/cache/cache_wrk.c
@@ -200,8 +200,14 @@ pool_getidleworker(struct pool *pp, enum task_prio prio)
}
return (NULL);
}
+
AZ(pt->func);
CAST_OBJ_NOTNULL(wrk, pt->priv, WORKER_MAGIC);
+
+ AN(pp->nidle);
+ VTAILQ_REMOVE(&pp->idle_queue, &wrk->task, list);
+ pp->nidle--;
+
return (wrk);
}
@@ -228,12 +234,9 @@ Pool_Task_Arg(struct worker *wrk, enum task_prio prio, task_func_t *func,
Lck_Lock(&pp->mtx);
wrk2 = pool_getidleworker(pp, prio);
- if (wrk2 != NULL) {
- AN(pp->nidle);
- VTAILQ_REMOVE(&pp->idle_queue, &wrk2->task, list);
- pp->nidle--;
+ if (wrk2 != NULL)
retval = 1;
- } else {
+ else {
wrk2 = wrk;
retval = 0;
}
@@ -280,9 +283,6 @@ Pool_Task(struct pool *pp, struct pool_task *task, enum task_prio prio)
wrk = pool_getidleworker(pp, prio);
if (wrk != NULL) {
- AN(pp->nidle);
- VTAILQ_REMOVE(&pp->idle_queue, &wrk->task, list);
- pp->nidle--;
AZ(wrk->task.func);
wrk->task.func = task->func;
wrk->task.priv = task->priv;
More information about the varnish-commit
mailing list