threadpool: allow leaf functions to run concurrently

Decrease the number of worker threads by one to account
for the fact the calling thread acts as a worker thread now
This commit is contained in:
moneromooo-monero
2018-04-26 11:44:47 +01:00
parent 2704624eae
commit 2771a18e85
7 changed files with 112 additions and 51 deletions
+6 -6
View File
@@ -862,9 +862,9 @@ namespace rct {
results[i] = verBulletproof(rv.p.bulletproofs[i]);
else
results[i] = verRange(rv.outPk[i].mask, rv.p.rangeSigs[i]);
});
}, true);
}
waiter.wait();
waiter.wait(&tpool);
for (size_t i = 0; i < rv.outPk.size(); ++i) {
if (!results[i]) {
@@ -970,9 +970,9 @@ namespace rct {
results[i] = verBulletproof(rv.p.bulletproofs[i]);
else
results[i] = verRange(rv.outPk[i].mask, rv.p.rangeSigs[i]);
});
}, true);
}
waiter.wait();
waiter.wait(&tpool);
for (size_t i = 0; i < results.size(); ++i) {
if (!results[i]) {
@@ -989,9 +989,9 @@ namespace rct {
for (size_t i = 0 ; i < rv.mixRing.size() ; i++) {
tpool.submit(&waiter, [&, i] {
results[i] = verRctMGSimple(message, rv.p.MGs[i], rv.mixRing[i], pseudoOuts[i]);
});
}, true);
}
waiter.wait();
waiter.wait(&tpool);
for (size_t i = 0; i < results.size(); ++i) {
if (!results[i]) {