mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
Expand cpuworker API to allow other work types
This commit is contained in:
parent
222122450c
commit
b022ea32a6
@ -16,7 +16,7 @@ typedef struct threadpool_s threadpool_t;
|
|||||||
typedef struct workqueue_entry_s workqueue_entry_t;
|
typedef struct workqueue_entry_s workqueue_entry_t;
|
||||||
|
|
||||||
/** Possible return value from a work function: */
|
/** Possible return value from a work function: */
|
||||||
typedef enum {
|
typedef enum workqueue_reply_t {
|
||||||
WQ_RPL_REPLY = 0, /** indicates success */
|
WQ_RPL_REPLY = 0, /** indicates success */
|
||||||
WQ_RPL_ERROR = 1, /** indicates fatal error */
|
WQ_RPL_ERROR = 1, /** indicates fatal error */
|
||||||
WQ_RPL_SHUTDOWN = 2, /** indicates thread is shutting down */
|
WQ_RPL_SHUTDOWN = 2, /** indicates thread is shutting down */
|
||||||
|
@ -479,6 +479,20 @@ queue_pending_tasks(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** DOCDOC */
|
||||||
|
workqueue_entry_t *
|
||||||
|
cpuworker_queue_work(workqueue_reply_t (*fn)(void *, void *),
|
||||||
|
void (*reply_fn)(void *),
|
||||||
|
void *arg)
|
||||||
|
{
|
||||||
|
tor_assert(threadpool);
|
||||||
|
|
||||||
|
return threadpool_queue_work(threadpool,
|
||||||
|
fn,
|
||||||
|
reply_fn,
|
||||||
|
arg);
|
||||||
|
}
|
||||||
|
|
||||||
/** Try to tell a cpuworker to perform the public key operations necessary to
|
/** Try to tell a cpuworker to perform the public key operations necessary to
|
||||||
* respond to <b>onionskin</b> for the circuit <b>circ</b>.
|
* respond to <b>onionskin</b> for the circuit <b>circ</b>.
|
||||||
*
|
*
|
||||||
|
@ -14,6 +14,12 @@
|
|||||||
|
|
||||||
void cpu_init(void);
|
void cpu_init(void);
|
||||||
void cpuworkers_rotate_keyinfo(void);
|
void cpuworkers_rotate_keyinfo(void);
|
||||||
|
struct workqueue_entry_s;
|
||||||
|
enum workqueue_reply_t;
|
||||||
|
struct workqueue_entry_s *cpuworker_queue_work(
|
||||||
|
enum workqueue_reply_t (*fn)(void *, void *),
|
||||||
|
void (*reply_fn)(void *),
|
||||||
|
void *arg);
|
||||||
|
|
||||||
struct create_cell_t;
|
struct create_cell_t;
|
||||||
int assign_onionskin_to_cpuworker(or_circuit_t *circ,
|
int assign_onionskin_to_cpuworker(or_circuit_t *circ,
|
||||||
|
Loading…
Reference in New Issue
Block a user