MINOR: task: add a new pointer to current tasklet queue
In task_per_thread[] we now have current_queue which is a pointer to
the current tasklet_list entry being evaluated. This will be used to
know the class under which the current task/tasklet is currently
running.
diff --git a/include/haproxy/task-t.h b/include/haproxy/task-t.h
index 2ea2b3c..7d23f68 100644
--- a/include/haproxy/task-t.h
+++ b/include/haproxy/task-t.h
@@ -77,6 +77,7 @@
int task_list_size; /* Number of tasks among the tasklets */
int rqueue_size; /* Number of elements in the per-thread run queue */
struct task *current; /* current task (not tasklet) */
+ struct list *current_queue; /* points to current tasklet list being run */
__attribute__((aligned(64))) char end[0];
};
diff --git a/src/task.c b/src/task.c
index 2097555..1f7fd53 100644
--- a/src/task.c
+++ b/src/task.c
@@ -330,6 +330,7 @@
void *ctx;
int done = 0;
+ sched->current_queue = list;
while (done < max && !LIST_ISEMPTY(list)) {
t = (struct task *)LIST_ELEM(list->n, struct tasklet *, list);
state = (t->state & (TASK_SHARED_WQ|TASK_SELF_WAKING));
@@ -400,6 +401,8 @@
}
done++;
}
+
+ sched->current_queue = NULL;
return done;
}