diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-04-14 10:26:51 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-04-14 11:15:56 +0100 |
commit | 1cbf18ff8463946aa5a09ccf1d6873b222b912b6 (patch) | |
tree | eb7921b1b2099a3d34928841734010d6e3f7701e /lib/worker.cpp | |
parent | Global worker instance (diff) | |
download | ilt-1cbf18ff8463946aa5a09ccf1d6873b222b912b6.tar.bz2 ilt-1cbf18ff8463946aa5a09ccf1d6873b222b912b6.tar.xz ilt-1cbf18ff8463946aa5a09ccf1d6873b222b912b6.zip |
Simplify worker with jthread
Moves thread collection to bottom of class so threads are joined before
job storage is destroyed.
Diffstat (limited to 'lib/worker.cpp')
-rw-r--r-- | lib/worker.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/worker.cpp b/lib/worker.cpp index cf59f56..4f1352d 100644 --- a/lib/worker.cpp +++ b/lib/worker.cpp @@ -9,16 +9,13 @@ Worker Worker::instance; Worker::Worker() : todoLen {0} { std::generate_n(std::back_inserter(threads), std::thread::hardware_concurrency(), [this]() { - return std::thread {&Worker::worker, this}; + return std::jthread {&Worker::worker, this}; }); } Worker::~Worker() { todoLen.release(std::thread::hardware_concurrency()); - std::for_each(threads.begin(), threads.end(), [](auto & th) { - th.join(); - }); } void |