diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-11-07 10:32:07 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-11-07 10:32:07 +1100 |
| commit | 499d5a942fc2ad0149b0a16e978e090336dd8319 (patch) | |
| tree | 1f671f0e3025b1350b25511e2442dfede19677df /src/database | |
| parent | d36fe9be6b522a3dade389213a0bb7e26a169627 (diff) | |
| download | tangara-fw-499d5a942fc2ad0149b0a16e978e090336dd8319.tar.gz | |
Add a wrapper codec source that does readahead
Diffstat (limited to 'src/database')
| -rw-r--r-- | src/database/database.cpp | 7 | ||||
| -rw-r--r-- | src/database/env_esp.cpp | 2 | ||||
| -rw-r--r-- | src/database/include/database.hpp | 3 | ||||
| -rw-r--r-- | src/database/include/env_esp.hpp | 2 |
4 files changed, 7 insertions, 7 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp index e826f576..e6cb85ed 100644 --- a/src/database/database.cpp +++ b/src/database/database.cpp @@ -117,16 +117,15 @@ static auto CheckDatabase(leveldb::DB& db, locale::ICollator& col) -> bool { auto Database::Open(IFileGatherer& gatherer, ITagParser& parser, - locale::ICollator& collator) + locale::ICollator& collator, + tasks::Worker& bg_worker) -> cpp::result<Database*, DatabaseError> { - // TODO(jacqueline): Why isn't compare_and_exchange_* available? if (sIsDbOpen.exchange(true)) { return cpp::fail(DatabaseError::ALREADY_OPEN); } if (!leveldb::sBackgroundThread) { - leveldb::sBackgroundThread.reset( - tasks::Worker::Start<tasks::Type::kDatabaseBackground>()); + leveldb::sBackgroundThread = &bg_worker; } std::shared_ptr<tasks::Worker> worker( diff --git a/src/database/env_esp.cpp b/src/database/env_esp.cpp index 8cddd09a..8cd11727 100644 --- a/src/database/env_esp.cpp +++ b/src/database/env_esp.cpp @@ -41,7 +41,7 @@ namespace leveldb { -std::shared_ptr<tasks::Worker> sBackgroundThread; +tasks::Worker *sBackgroundThread = nullptr; std::string ErrToStr(FRESULT err) { switch (err) { diff --git a/src/database/include/database.hpp b/src/database/include/database.hpp index 5eb3a8e9..fb58f3e7 100644 --- a/src/database/include/database.hpp +++ b/src/database/include/database.hpp @@ -95,7 +95,8 @@ class Database { }; static auto Open(IFileGatherer& file_gatherer, ITagParser& tag_parser, - locale::ICollator& collator) + locale::ICollator& collator, + tasks::Worker& bg_worker) -> cpp::result<Database*, DatabaseError>; static auto Destroy() -> void; diff --git a/src/database/include/env_esp.hpp b/src/database/include/env_esp.hpp index eba6e8a9..dd0159b2 100644 --- a/src/database/include/env_esp.hpp +++ b/src/database/include/env_esp.hpp @@ -18,7 +18,7 @@ namespace leveldb { -extern std::shared_ptr<tasks::Worker> sBackgroundThread; +extern tasks::Worker* sBackgroundThread; // Tracks the files locked by EspEnv::LockFile(). // |
