diff --git a/include/haproxy/task-t.h b/include/haproxy/task-t.h index 54455c7a8..415a490cb 100644 --- a/include/haproxy/task-t.h +++ b/include/haproxy/task-t.h @@ -162,22 +162,6 @@ struct tasklet { */ -/* A work_list is a thread-safe way to enqueue some work to be run on another - * thread. It consists of a list, a task and a general-purpose argument. - * A work is appended to the list by atomically adding a list element to the - * list and waking up the associated task, which is done using work_add(). The - * caller must be careful about how operations are run as it will definitely - * happen that the element being enqueued is processed by the other thread - * before the call returns. Some locking conventions between the caller and the - * callee might sometimes be necessary. The task is always woken up with reason - * TASK_WOKEN_OTHER and a context pointing to the work_list entry. - */ -struct work_list { - struct mt_list head; - struct task *task; - void *arg; -}; - #endif /* _HAPROXY_TASK_T_H */ /* diff --git a/include/haproxy/task.h b/include/haproxy/task.h index 360fd8778..aa9e3b2e3 100644 --- a/include/haproxy/task.h +++ b/include/haproxy/task.h @@ -110,11 +110,6 @@ void task_kill(struct task *t); void tasklet_kill(struct tasklet *t); void __task_wakeup(struct task *t); void __task_queue(struct task *task, struct eb_root *wq); - -struct work_list *work_list_create(int nbthread, - struct task *(*fct)(struct task *, void *, unsigned int), - void *arg); -void work_list_destroy(struct work_list *work, int nbthread); unsigned int run_tasks_from_lists(unsigned int budgets[]); /* @@ -684,13 +679,6 @@ static inline int notification_registered(struct list *wake) return !LIST_ISEMPTY(wake); } -/* adds list item to work list and wake up the associated task */ -static inline void work_list_add(struct work_list *work, struct mt_list *item) -{ - MT_LIST_TRY_APPEND(&work->head, item); - task_wakeup(work->task, TASK_WOKEN_OTHER); -} - #endif /* _HAPROXY_TASK_H */ /* diff --git a/src/task.c b/src/task.c index 7ce07dadc..2d063d91b 100644 --- a/src/task.c +++ b/src/task.c @@ -859,51 +859,6 @@ void process_runnable_tasks() activity[tid].long_rq++; } -/* create a work list array for threads, using tasks made of - * function . The context passed to the function will be the pointer to - * the thread's work list, which will contain a copy of argument . The - * wake up reason will be TASK_WOKEN_OTHER. The pointer to the work_list array - * is returned on success, otherwise NULL on failure. - */ -struct work_list *work_list_create(int nbthread, - struct task *(*fct)(struct task *, void *, unsigned int), - void *arg) -{ - struct work_list *wl; - int i; - - wl = calloc(nbthread, sizeof(*wl)); - if (!wl) - goto fail; - - for (i = 0; i < nbthread; i++) { - MT_LIST_INIT(&wl[i].head); - wl[i].task = task_new(1UL << i); - if (!wl[i].task) - goto fail; - wl[i].task->process = fct; - wl[i].task->context = &wl[i]; - wl[i].arg = arg; - } - return wl; - - fail: - work_list_destroy(wl, nbthread); - return NULL; -} - -/* destroy work list */ -void work_list_destroy(struct work_list *work, int nbthread) -{ - int t; - - if (!work) - return; - for (t = 0; t < nbthread; t++) - task_destroy(work[t].task); - free(work); -} - /* * Delete every tasks before running the master polling loop */