mirror of
https://github.com/matrix-construct/construct
synced 2024-12-26 15:33:54 +01:00
ircd: Move any externally used interfaces out of init objects.
This commit is contained in:
parent
e51b855f2b
commit
4821f6d2db
6 changed files with 21 additions and 12 deletions
|
@ -75,6 +75,9 @@ namespace ircd::db
|
||||||
|
|
||||||
// Paths of available databases.
|
// Paths of available databases.
|
||||||
std::vector<std::string> available();
|
std::vector<std::string> available();
|
||||||
|
|
||||||
|
//XXX should remove
|
||||||
|
void chdir();
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace ircd
|
namespace ircd
|
||||||
|
|
|
@ -59,6 +59,11 @@ namespace ircd::server
|
||||||
peer &get(const net::hostport &); // creates the peer if not found.
|
peer &get(const net::hostport &); // creates the peer if not found.
|
||||||
bool prelink(const net::hostport &); // creates and links if not errant.
|
bool prelink(const net::hostport &); // creates and links if not errant.
|
||||||
bool errclear(const net::hostport &); // clear cached error.
|
bool errclear(const net::hostport &); // clear cached error.
|
||||||
|
|
||||||
|
// manual control panel
|
||||||
|
void interrupt();
|
||||||
|
void close();
|
||||||
|
void wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Subsystem initialization / destruction from ircd::main
|
/// Subsystem initialization / destruction from ircd::main
|
||||||
|
@ -66,11 +71,6 @@ namespace ircd::server
|
||||||
struct [[gnu::visibility("hidden")]]
|
struct [[gnu::visibility("hidden")]]
|
||||||
ircd::server::init
|
ircd::server::init
|
||||||
{
|
{
|
||||||
// manual control panel
|
|
||||||
static void interrupt();
|
|
||||||
static void close();
|
|
||||||
static void wait();
|
|
||||||
|
|
||||||
init() noexcept;
|
init() noexcept;
|
||||||
~init() noexcept;
|
~init() noexcept;
|
||||||
};
|
};
|
||||||
|
|
|
@ -5349,6 +5349,12 @@ ircd::db::make_opts(const sopts &opts)
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::db::chdir()
|
||||||
|
{
|
||||||
|
init::directory();
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<std::string>
|
std::vector<std::string>
|
||||||
ircd::db::available()
|
ircd::db::available()
|
||||||
{
|
{
|
||||||
|
|
|
@ -73,7 +73,7 @@ noexcept
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::server::init::wait()
|
ircd::server::wait()
|
||||||
{
|
{
|
||||||
static const auto finished
|
static const auto finished
|
||||||
{
|
{
|
||||||
|
@ -106,7 +106,7 @@ ircd::server::init::wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::server::init::close()
|
ircd::server::close()
|
||||||
{
|
{
|
||||||
log::debug
|
log::debug
|
||||||
{
|
{
|
||||||
|
@ -121,7 +121,7 @@ ircd::server::init::close()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::server::init::interrupt()
|
ircd::server::interrupt()
|
||||||
{
|
{
|
||||||
log::debug
|
log::debug
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,7 +107,7 @@ ircd::m::dbs::init::init(const string_view &servername,
|
||||||
fs::base::db.set(our_dbpath);
|
fs::base::db.set(our_dbpath);
|
||||||
|
|
||||||
// Recall the db directory init manually with the now-updated basepath
|
// Recall the db directory init manually with the now-updated basepath
|
||||||
db::init::directory();
|
db::chdir();
|
||||||
|
|
||||||
// Open the events database
|
// Open the events database
|
||||||
static const string_view &dbname{"events"};
|
static const string_view &dbname{"events"};
|
||||||
|
|
|
@ -305,13 +305,13 @@ ircd::m::homeserver::~homeserver()
|
||||||
noexcept try
|
noexcept try
|
||||||
{
|
{
|
||||||
///TODO: XXX primary
|
///TODO: XXX primary
|
||||||
server::init::interrupt();
|
server::interrupt();
|
||||||
client::terminate_all(); //TODO: XXX
|
client::terminate_all(); //TODO: XXX
|
||||||
server::init::close();
|
server::close();
|
||||||
client::close_all();
|
client::close_all();
|
||||||
m::init::backfill::fini();
|
m::init::backfill::fini();
|
||||||
client::wait_all();
|
client::wait_all();
|
||||||
server::init::wait();
|
server::wait();
|
||||||
m::sync::pool.join();
|
m::sync::pool.join();
|
||||||
|
|
||||||
if(!ircd::maintenance && _vm)
|
if(!ircd::maintenance && _vm)
|
||||||
|
|
Loading…
Reference in a new issue