summaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
Diffstat (limited to 'src/database')
-rw-r--r--src/database/database.cpp7
-rw-r--r--src/database/env_esp.cpp2
-rw-r--r--src/database/include/database.hpp3
-rw-r--r--src/database/include/env_esp.hpp2
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().
//