0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-05 01:58:35 +02:00

ircd:Ⓜ️:init::backfill: Additional worker terminator based on runlevel change.

This commit is contained in:
Jason Volk 2019-09-10 14:28:10 -07:00
parent 95a8623a51
commit ee3dcf5075

View file

@ -19,6 +19,7 @@ struct ircd::m::init::backfill
static void fini();
static void init();
static run::changed worker_terminator;
static std::unique_ptr<context> worker_context;
static conf::item<bool> enable;
static conf::item<size_t> pool_size;
@ -56,6 +57,14 @@ ircd::m::init::backfill::pool_size
decltype(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
ircd::m::init::backfill::init()
{
@ -167,9 +176,6 @@ try
dock.notify_one();
}};
if(unlikely(run::level != run::level::RUN))
return false;
handle_room(room_id);
ctx::interruption_point();