aboutsummaryrefslogtreecommitdiff
path: root/src/common/threadpool.cpp (follow)
AgeCommit message (Collapse)AuthorFilesLines
2018-06-26threadpool: allow leaf functions to run concurrentlymoneromooo-monero1-11/+26
Decrease the number of worker threads by one to account for the fact the calling thread acts as a worker thread now
2018-05-20threadpool: allow constructing an object, and misc tweaksmoneromooo-monero1-4/+4
use unsigned int to avoid having to range check negative numbers, use const where possible, don't needlessly create empty objects, use std::move where possible
2018-02-02threadpool: catch exceptions in dtor, to avoid terminatemoneromooo-monero1-0/+18
If an exception is thrown, it is ignored. While this may hide a bug, this should only be system exceptions in boost, which is pretty unlikely. Morever, wait should be called manually before the dtor anyway. Add an error message if the dtor has to wait in case some such cases creep in so they get fixed. Coverity 182538
2018-01-26Readd copyright starting datexmr-eric1-1/+1
2018-01-26Update 2018 copyrightxmr-eric1-1/+1
2017-12-23threadpool: fix deadlock in recursive waiter usagemoneromooo-monero1-1/+7
If a queued job uses a waiter, then we want to run that waiter's jobs in the current thread if all threads are busy, even if the queue is empty, since there is no guarantee that any thread will free up to take care of that new job, since all the threads might be running a job which spawns such a recursive job and will block till that recursive job is done, which it will never be since it relies on the queue being polled by one of those blocked threads.
2017-11-02Use max_concurrency as-isHoward Chu1-2/+2
Don't try to 2nd guess user
2017-09-15Tweak concurrency limitsHoward Chu1-1/+5
Create capacity for 2x max, but lie about it
2017-09-14Use a threadpoolHoward Chu1-0/+113
Instead of constantly creating and destroying threads