Age | Commit message (Collapse) | Author | Files | Lines |
|
Decrease the number of worker threads by one to account
for the fact the calling thread acts as a worker thread now
|
|
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
|
|
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
|
|
|
|
|
|
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.
|
|
Don't try to 2nd guess user
|
|
Create capacity for 2x max, but lie about it
|
|
Instead of constantly creating and destroying threads
|