Tor
0.4.7.0-alpha-dev
|
Data Fields | |
struct workerthread_t ** | threads |
tor_cond_t | condition |
work_tailq_t | work [WORKQUEUE_N_PRIORITIES] |
unsigned | generation |
workqueue_reply_t(* | update_fn )(void *, void *) |
void(* | free_update_arg_fn )(void *) |
void ** | update_args |
struct event * | reply_event |
void(* | reply_cb )(threadpool_t *) |
int | n_threads |
tor_mutex_t | lock |
replyqueue_t * | reply_queue |
void *(* | new_thread_state_fn )(void *) |
void(* | free_thread_state_fn )(void *) |
void * | new_thread_state_arg |
A thread-pool manages starting threads and passing work to them.
Definition at line 50 of file workqueue.c.
tor_cond_t condition |
Condition variable that we wait on when we have no work, and which gets signaled when our queue becomes nonempty.
Definition at line 57 of file workqueue.c.
void(* free_update_arg_fn) (void *) |
Function to free update arguments if they can't be run.
Definition at line 69 of file workqueue.c.
Referenced by threadpool_queue_update().
unsigned generation |
The current 'update generation' of the threadpool. Any thread that is at an earlier generation needs to run the update function.
Definition at line 64 of file workqueue.c.
Referenced by worker_thread_main().
tor_mutex_t lock |
Mutex to protect all the above fields.
Definition at line 79 of file workqueue.c.
Referenced by threadpool_queue_update(), and worker_thread_main().
int n_threads |
Number of elements in threads.
Definition at line 77 of file workqueue.c.
Referenced by threadpool_queue_update().
void*(* new_thread_state_fn) (void *) |
Functions used to allocate and free thread state.
Definition at line 85 of file workqueue.c.
struct event* reply_event |
Event to notice when another thread has sent a reply.
Definition at line 73 of file workqueue.c.
Referenced by threadpool_register_reply_event().
replyqueue_t* reply_queue |
A reply queue to use when constructing new threads.
Definition at line 82 of file workqueue.c.
Referenced by reply_event_cb(), and threadpool_get_replyqueue().
struct workerthread_t** threads |
An array of pointers to workerthread_t: one for each running worker thread.
Definition at line 53 of file workqueue.c.
void** update_args |
Array of n_threads update arguments.
Definition at line 71 of file workqueue.c.
Referenced by threadpool_queue_update(), and worker_thread_main().
workqueue_reply_t(* update_fn) (void *, void *) |
Function that should be run for updates on each thread.
Definition at line 67 of file workqueue.c.
Referenced by worker_thread_main().
work_tailq_t work[WORKQUEUE_N_PRIORITIES] |
Queues of pending work that we have to do. The queue with priority p is work[p].
Definition at line 60 of file workqueue.c.
Referenced by queue_reply(), and worker_thread_main().