summaryrefslogtreecommitdiff
path: root/src/lib/evloop/workqueue.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2022-09-04 03:55:27 -0400
committerMicah Elizabeth Scott <beth@torproject.org>2023-05-10 07:37:11 -0700
commiteba919093320a995a10637170fcc881a4c2c2dd9 (patch)
treed5a419042f28176e9d8d983f65f6d4168186ddc5 /src/lib/evloop/workqueue.c
parentaa41d4b9396ade02fa1b14a2aa0fa097e11e779d (diff)
downloadtor-eba919093320a995a10637170fcc881a4c2c2dd9.tar.gz
tor-eba919093320a995a10637170fcc881a4c2c2dd9.zip
compute the client-side pow in a cpuworker thread
We mark the intro circuit with a new flag saying that the pow is in the cpuworker queue. When the cpuworker comes back, it either has a solution, in which case we proceed with sending the intro1 cell, or it has no solution, in which case we unmark the intro circuit and let the whole process restart on the next iteration of connection_ap_handshake_attach_circuit().
Diffstat (limited to 'src/lib/evloop/workqueue.c')
-rw-r--r--src/lib/evloop/workqueue.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/evloop/workqueue.c b/src/lib/evloop/workqueue.c
index bc929148eb..9a0c02fbd0 100644
--- a/src/lib/evloop/workqueue.c
+++ b/src/lib/evloop/workqueue.c
@@ -20,7 +20,10 @@
* The main thread can also queue an "update" that will be handled by all the
* workers. This is useful for updating state that all the workers share.
*
- * In Tor today, there is currently only one thread pool, used in cpuworker.c.
+ * In Tor today, there is currently only one thread pool, managed
+ * in cpuworker.c and handling a variety of types of work, from the original
+ * "onion skin" circuit handshakes, to consensus diff computation, to
+ * client-side onion service PoW generation.
*/
#include "orconfig.h"