aboutsummaryrefslogtreecommitdiff
path: root/src/invalid/invalid.c
diff options
context:
space:
mode:
authorJ08nY2017-04-16 20:44:59 +0200
committerJ08nY2017-04-16 20:44:59 +0200
commite9607b16c696b00a76b518909ab4aa132c8eee6f (patch)
tree990ada20be8c585e00855f74c234c808b5c052cd /src/invalid/invalid.c
parent646dc9c8ee00144908ff66d7f4741cce3adb28ae (diff)
downloadecgen-e9607b16c696b00a76b518909ab4aa132c8eee6f.tar.gz
ecgen-e9607b16c696b00a76b518909ab4aa132c8eee6f.tar.zst
ecgen-e9607b16c696b00a76b518909ab4aa132c8eee6f.zip
Change invalid curve generation thread argument passing
Diffstat (limited to 'src/invalid/invalid.c')
-rw-r--r--src/invalid/invalid.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/invalid/invalid.c b/src/invalid/invalid.c
index ed2ee77..765a566 100644
--- a/src/invalid/invalid.c
+++ b/src/invalid/invalid.c
@@ -210,6 +210,10 @@ static size_t invalid_curves_threaded(curve_t *curve, config_t *cfg,
pthread_cond_t generated_cond = PTHREAD_COND_INITIALIZER;
for (size_t i = 0; i < cfg->threads; ++i) {
+ pari_thread_alloc(&pari_threads[i], cfg->thread_memory,
+ (GEN)&threads[i]);
+
+ threads[i].pari_thread = &pari_threads[i];
threads[i].original_curve = curve;
threads[i].nprimes = nprimes;
threads[i].primes = primes;
@@ -221,15 +225,12 @@ static size_t invalid_curves_threaded(curve_t *curve, config_t *cfg,
threads[i].cfg = cfg;
threads[i].gens = invalid_gen;
threads[i].unrolls = unrolls;
-
- pari_thread_alloc(&pari_threads[i], cfg->thread_memory,
- (GEN)&threads[i]);
}
pthread_mutex_lock(&state_mutex);
for (size_t i = 0; i < cfg->threads; ++i) {
pthread_create(&pthreads[i], NULL, &invalid_thread,
- (void *)&pari_threads[i]);
+ (void *)&threads[i]);
}
bool running = true;