mirror of
https://github.com/matrix-construct/construct
synced 2024-10-05 23:28:53 +02:00
ircd:Ⓜ️:init::backfill: Additional worker terminator based on runlevel change.
This commit is contained in:
parent
95a8623a51
commit
ee3dcf5075
1 changed files with 9 additions and 3 deletions
|
@ -19,6 +19,7 @@ struct ircd::m::init::backfill
|
||||||
static void fini();
|
static void fini();
|
||||||
static void init();
|
static void init();
|
||||||
|
|
||||||
|
static run::changed worker_terminator;
|
||||||
static std::unique_ptr<context> worker_context;
|
static std::unique_ptr<context> worker_context;
|
||||||
static conf::item<bool> enable;
|
static conf::item<bool> enable;
|
||||||
static conf::item<size_t> pool_size;
|
static conf::item<size_t> pool_size;
|
||||||
|
@ -56,6 +57,14 @@ ircd::m::init::backfill::pool_size
|
||||||
decltype(ircd::m::init::backfill::worker_context)
|
decltype(ircd::m::init::backfill::worker_context)
|
||||||
ircd::m::init::backfill::worker_context;
|
ircd::m::init::backfill::worker_context;
|
||||||
|
|
||||||
|
decltype(ircd::m::init::backfill::worker_terminator)
|
||||||
|
ircd::m::init::backfill::worker_terminator{[]
|
||||||
|
(const auto &level)
|
||||||
|
{
|
||||||
|
if(level == run::level::QUIT && worker_context)
|
||||||
|
worker_context->terminate();
|
||||||
|
}};
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::m::init::backfill::init()
|
ircd::m::init::backfill::init()
|
||||||
{
|
{
|
||||||
|
@ -167,9 +176,6 @@ try
|
||||||
dock.notify_one();
|
dock.notify_one();
|
||||||
}};
|
}};
|
||||||
|
|
||||||
if(unlikely(run::level != run::level::RUN))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
handle_room(room_id);
|
handle_room(room_id);
|
||||||
ctx::interruption_point();
|
ctx::interruption_point();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue