Commit 0db7a0c9 authored by Max Kellermann's avatar Max Kellermann

db/update/Service: migrate from DeferredMonitor to DeferEvent

parent 13f6b1b3
......@@ -40,7 +40,7 @@
UpdateService::UpdateService(EventLoop &_loop, SimpleDatabase &_db,
CompositeStorage &_storage,
DatabaseListener &_listener)
:DeferredMonitor(_loop),
:defer(_loop, BIND_THIS_METHOD(RunDeferred)),
db(_db), storage(_storage),
listener(_listener),
update_thread(BIND_THIS_METHOD(Task))
......@@ -136,7 +136,7 @@ UpdateService::Task()
else
LogDebug(update_domain, "finished");
DeferredMonitor::Schedule();
defer.Schedule();
}
void
......@@ -237,7 +237,7 @@ UpdateService::Enqueue(const char *path, bool discard)
* Called in the main thread after the database update is finished.
*/
void
UpdateService::RunDeferred()
UpdateService::RunDeferred() noexcept
{
assert(next.IsDefined());
assert(walk != nullptr);
......
......@@ -22,7 +22,7 @@
#include "check.h"
#include "Queue.hxx"
#include "event/DeferredMonitor.hxx"
#include "event/DeferEvent.hxx"
#include "thread/Thread.hxx"
#include "Compiler.h"
......@@ -34,7 +34,9 @@ class CompositeStorage;
/**
* This class manages the update queue and runs the update thread.
*/
class UpdateService final : DeferredMonitor {
class UpdateService final {
DeferEvent defer;
SimpleDatabase &db;
CompositeStorage &storage;
......@@ -61,6 +63,10 @@ public:
~UpdateService();
EventLoop &GetEventLoop() noexcept {
return defer.GetEventLoop();
}
/**
* Returns a non-zero job id when we are currently updating
* the database.
......@@ -93,8 +99,8 @@ public:
void CancelMount(const char *uri);
private:
/* virtual methods from class DeferredMonitor */
virtual void RunDeferred() override;
/* DeferEvent callback */
void RunDeferred() noexcept;
/* the update thread */
void Task();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment