From dad159dc3c4ebc89d395b4b695a0626b7be10578 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 1 Feb 2024 10:54:20 +1100 Subject: Use a single pool of bg workers instead of separate tasks per use case Also: bump the number of workers tasks up to 3 from 2! This makes bg db updates + playback work :) --- src/database/database.cpp | 4 ++-- src/database/env_esp.cpp | 2 +- src/database/include/database.hpp | 2 +- src/database/include/env_esp.hpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/database') diff --git a/src/database/database.cpp b/src/database/database.cpp index bb26bc96..6b879710 100644 --- a/src/database/database.cpp +++ b/src/database/database.cpp @@ -126,14 +126,14 @@ static auto CheckDatabase(leveldb::DB& db, locale::ICollator& col) -> bool { auto Database::Open(IFileGatherer& gatherer, ITagParser& parser, locale::ICollator& collator, - tasks::Worker& bg_worker) + tasks::WorkerPool& bg_worker) -> cpp::result { if (sIsDbOpen.exchange(true)) { return cpp::fail(DatabaseError::ALREADY_OPEN); } if (!leveldb::sBackgroundThread) { - leveldb::sBackgroundThread = tasks::Worker::Start(); + leveldb::sBackgroundThread = &bg_worker; } return bg_worker diff --git a/src/database/env_esp.cpp b/src/database/env_esp.cpp index 8cd11727..f7a5637a 100644 --- a/src/database/env_esp.cpp +++ b/src/database/env_esp.cpp @@ -41,7 +41,7 @@ namespace leveldb { -tasks::Worker *sBackgroundThread = nullptr; +tasks::WorkerPool *sBackgroundThread = nullptr; std::string ErrToStr(FRESULT err) { switch (err) { diff --git a/src/database/include/database.hpp b/src/database/include/database.hpp index c4da3dc1..783d3872 100644 --- a/src/database/include/database.hpp +++ b/src/database/include/database.hpp @@ -56,7 +56,7 @@ class Database { static auto Open(IFileGatherer& file_gatherer, ITagParser& tag_parser, locale::ICollator& collator, - tasks::Worker& bg_worker) + tasks::WorkerPool& bg_worker) -> cpp::result; static auto Destroy() -> void; diff --git a/src/database/include/env_esp.hpp b/src/database/include/env_esp.hpp index dd0159b2..472a72a6 100644 --- a/src/database/include/env_esp.hpp +++ b/src/database/include/env_esp.hpp @@ -18,7 +18,7 @@ namespace leveldb { -extern tasks::Worker* sBackgroundThread; +extern tasks::WorkerPool* sBackgroundThread; // Tracks the files locked by EspEnv::LockFile(). // -- cgit v1.2.3