diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-07-05 15:13:44 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-07-05 15:22:17 -0400 |
commit | 1e417b7275028a50227f57fb71d04c1837ec4b2c (patch) | |
tree | 3cbf379caf8367391980abf3a562b20eb4d63052 /src/common/workqueue.h | |
parent | 947de40d198d83e561320afe5d0146f43dc9192a (diff) | |
download | tor-1e417b7275028a50227f57fb71d04c1837ec4b2c.tar.gz tor-1e417b7275028a50227f57fb71d04c1837ec4b2c.zip |
All remaining files in src/common belong to the event loop.
Diffstat (limited to 'src/common/workqueue.h')
-rw-r--r-- | src/common/workqueue.h | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/src/common/workqueue.h b/src/common/workqueue.h deleted file mode 100644 index 4e5c424be6..0000000000 --- a/src/common/workqueue.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2013-2018, The Tor Project, Inc. */ -/* See LICENSE for licensing information */ - -#ifndef TOR_WORKQUEUE_H -#define TOR_WORKQUEUE_H - -#include "lib/cc/torint.h" - -/** A replyqueue is used to tell the main thread about the outcome of - * work that we queued for the workers. */ -typedef struct replyqueue_s replyqueue_t; -/** A thread-pool manages starting threads and passing work to them. */ -typedef struct threadpool_s threadpool_t; -/** A workqueue entry represents a request that has been passed to a thread - * pool. */ -typedef struct workqueue_entry_s workqueue_entry_t; - -/** Possible return value from a work function: */ -typedef enum workqueue_reply_t { - WQ_RPL_REPLY = 0, /** indicates success */ - WQ_RPL_ERROR = 1, /** indicates fatal error */ - WQ_RPL_SHUTDOWN = 2, /** indicates thread is shutting down */ -} workqueue_reply_t; - -/** Possible priorities for work. Lower numeric values are more important. */ -typedef enum workqueue_priority_t { - WQ_PRI_HIGH = 0, - WQ_PRI_MED = 1, - WQ_PRI_LOW = 2, -} workqueue_priority_t; - -workqueue_entry_t *threadpool_queue_work_priority(threadpool_t *pool, - workqueue_priority_t prio, - workqueue_reply_t (*fn)(void *, - void *), - void (*reply_fn)(void *), - void *arg); - -workqueue_entry_t *threadpool_queue_work(threadpool_t *pool, - workqueue_reply_t (*fn)(void *, - void *), - void (*reply_fn)(void *), - void *arg); - -int threadpool_queue_update(threadpool_t *pool, - void *(*dup_fn)(void *), - workqueue_reply_t (*fn)(void *, void *), - void (*free_fn)(void *), - void *arg); -void *workqueue_entry_cancel(workqueue_entry_t *pending_work); -threadpool_t *threadpool_new(int n_threads, - replyqueue_t *replyqueue, - void *(*new_thread_state_fn)(void*), - void (*free_thread_state_fn)(void*), - void *arg); -replyqueue_t *threadpool_get_replyqueue(threadpool_t *tp); - -replyqueue_t *replyqueue_new(uint32_t alertsocks_flags); -void replyqueue_process(replyqueue_t *queue); - -struct event_base; -int threadpool_register_reply_event(threadpool_t *tp, - void (*cb)(threadpool_t *tp)); - -#endif /* !defined(TOR_WORKQUEUE_H) */ |