diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2024-10-31 02:30:54 +0200 |
---|---|---|
committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2025-04-11 00:13:19 +0300 |
commit | 9117a37c3d1bd9741e599b60fdf000f9f174f72a (patch) | |
tree | fbdacb16debe1e9924deff7dfb1e231d3e64791a /indra/llcommon/workqueue.cpp | |
parent | f52b281f00d398a630353fba2d8d0ae6b9efdcbd (diff) |
Give control over thread queue's automatic shutdown
Diffstat (limited to 'indra/llcommon/workqueue.cpp')
-rw-r--r-- | indra/llcommon/workqueue.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/indra/llcommon/workqueue.cpp b/indra/llcommon/workqueue.cpp index 6066e74fb5..a2b056647c 100644 --- a/indra/llcommon/workqueue.cpp +++ b/indra/llcommon/workqueue.cpp @@ -29,12 +29,15 @@ using Lock = LLCoros::LockType; /***************************************************************************** * WorkQueueBase *****************************************************************************/ -LL::WorkQueueBase::WorkQueueBase(const std::string& name): - super(makeName(name)) +LL::WorkQueueBase::WorkQueueBase(const std::string& name, bool auto_shutdown) + : super(makeName(name)) +{ + if (auto_shutdown) { // TODO: register for "LLApp" events so we can implicitly close() on // viewer shutdown. } +} void LL::WorkQueueBase::runUntilClose() { @@ -135,8 +138,8 @@ void LL::WorkQueueBase::checkCoroutine(const std::string& method) /***************************************************************************** * WorkQueue *****************************************************************************/ -LL::WorkQueue::WorkQueue(const std::string& name, size_t capacity): - super(name), +LL::WorkQueue::WorkQueue(const std::string& name, size_t capacity, bool auto_shutdown): + super(name, auto_shutdown), mQueue(capacity) { } @@ -184,8 +187,8 @@ bool LL::WorkQueue::tryPop_(Work& work) /***************************************************************************** * WorkSchedule *****************************************************************************/ -LL::WorkSchedule::WorkSchedule(const std::string& name, size_t capacity): - super(name), +LL::WorkSchedule::WorkSchedule(const std::string& name, size_t capacity, bool auto_shutdown): + super(name, auto_shutdown), mQueue(capacity) { } |