aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-11-22 22:31:07 +0100
committerChristian Grothoff <christian@grothoff.org>2020-11-22 22:31:07 +0100
commitcbba3d5f292517c72b6c20299d9c023ba7a4c344 (patch)
tree0ee4945a439ed538d667197a4daa1057529af139
parent171391057d82c6483ea40d589e2bf89a2064a125 (diff)
make parallelism configurable
-rw-r--r--src/util/taler-helper-crypto-rsa.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/util/taler-helper-crypto-rsa.c b/src/util/taler-helper-crypto-rsa.c
index abd8014fd..b8f959ee3 100644
--- a/src/util/taler-helper-crypto-rsa.c
+++ b/src/util/taler-helper-crypto-rsa.c
@@ -246,6 +246,13 @@ struct WorkItem
static int global_ret;
/**
+ * Number of worker threads to use. Default (0) is to use one per CPU core
+ * available.
+ * Length of the #workers array.
+ */
+static unsigned int num_workers;
+
+/**
* Time when the key update is executed.
* Either the actual current time, or a pretended time.
*/
@@ -386,11 +393,6 @@ static volatile bool in_shutdown;
*/
static pthread_t *workers;
-/**
- * Length of the #workers array.
- */
-static unsigned int num_workers;
-
/**
* Main function of a worker thread that signs.
@@ -1879,7 +1881,8 @@ run (void *cls,
NULL);
/* start crypto workers */
- num_workers = 1; // for now...
+ if (0 == num_workers)
+ num_workers = sysconf (_SC_NPROCESSORS_CONF);
workers = GNUNET_new_array (num_workers,
pthread_t);
for (unsigned int i = 0; i<num_workers; i++)
@@ -1905,6 +1908,11 @@ main (int argc,
struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_option_timetravel ('T',
"timetravel"),
+ GNUNET_GETOPT_option_uint ('p',
+ "parallelism",
+ "NUM_WORKERS",
+ "number of worker threads to use",
+ &num_workers),
GNUNET_GETOPT_option_absolute_time ('t',
"time",
"TIMESTAMP",