mirror of
https://github.com/matrix-construct/construct
synced 2024-10-01 21:28:53 +02:00
ircd::server: Minor reorg; section comments.
This commit is contained in:
parent
9b5e4f8d48
commit
8ce0c46f63
2 changed files with 100 additions and 97 deletions
|
@ -62,9 +62,9 @@ namespace ircd::server
|
||||||
struct ircd::server::init
|
struct ircd::server::init
|
||||||
{
|
{
|
||||||
// manual control panel
|
// manual control panel
|
||||||
void interrupt();
|
static void interrupt();
|
||||||
void close();
|
static void close();
|
||||||
void wait();
|
static void wait();
|
||||||
|
|
||||||
init() noexcept;
|
init() noexcept;
|
||||||
~init() noexcept;
|
~init() noexcept;
|
||||||
|
|
189
ircd/server.cc
189
ircd/server.cc
|
@ -36,6 +36,93 @@ close_all_timeout
|
||||||
{ "default", 2L },
|
{ "default", 2L },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// init
|
||||||
|
//
|
||||||
|
|
||||||
|
ircd::server::init::init()
|
||||||
|
noexcept
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ircd::server::init::~init()
|
||||||
|
noexcept
|
||||||
|
{
|
||||||
|
interrupt(), close(), wait();
|
||||||
|
peers.clear();
|
||||||
|
log::debug
|
||||||
|
{
|
||||||
|
log, "All server peers, connections, and requests are clear."
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::server::init::wait()
|
||||||
|
{
|
||||||
|
static const auto finished
|
||||||
|
{
|
||||||
|
[] { return !peer_unfinished(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
while(!dock.wait_for(seconds(5), finished))
|
||||||
|
{
|
||||||
|
for(const auto &[name, peer] : peers)
|
||||||
|
log::dwarning
|
||||||
|
{
|
||||||
|
log, "Waiting for peer %s tags:%zu links:%zu err:%b op[r:%b f:%b]",
|
||||||
|
name,
|
||||||
|
peer->tag_count(),
|
||||||
|
peer->link_count(),
|
||||||
|
peer->err_has(),
|
||||||
|
peer->op_resolve,
|
||||||
|
peer->op_fini,
|
||||||
|
};
|
||||||
|
|
||||||
|
log::warning
|
||||||
|
{
|
||||||
|
log, "Waiting for %zu tags on %zu links on %zu of %zu peers to close...",
|
||||||
|
tag_count(),
|
||||||
|
link_count(),
|
||||||
|
peer_unfinished(),
|
||||||
|
peer_count()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::server::init::close()
|
||||||
|
{
|
||||||
|
log::debug
|
||||||
|
{
|
||||||
|
log, "Closing all %zu peers",
|
||||||
|
peer_count()
|
||||||
|
};
|
||||||
|
|
||||||
|
net::close_opts opts;
|
||||||
|
opts.timeout = seconds(close_all_timeout);
|
||||||
|
for(auto &peer : peers)
|
||||||
|
peer.second->close(opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::server::init::interrupt()
|
||||||
|
{
|
||||||
|
log::debug
|
||||||
|
{
|
||||||
|
log, "Cancel %zu tags on %zu links on %zu peers",
|
||||||
|
tag_count(),
|
||||||
|
link_count(),
|
||||||
|
peer_count()
|
||||||
|
};
|
||||||
|
|
||||||
|
for(auto &peer : peers)
|
||||||
|
peer.second->cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// ircd::server
|
||||||
|
//
|
||||||
|
|
||||||
ircd::server::peer &
|
ircd::server::peer &
|
||||||
ircd::server::get(const net::hostport &hostport)
|
ircd::server::get(const net::hostport &hostport)
|
||||||
{
|
{
|
||||||
|
@ -229,92 +316,16 @@ ircd::server::accumulate_peers(F&& closure)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// init
|
// server/request.h
|
||||||
//
|
//
|
||||||
|
|
||||||
ircd::server::init::init()
|
decltype(ircd::server::request::log)
|
||||||
noexcept
|
ircd::server::request::log
|
||||||
{
|
{
|
||||||
}
|
"server.request"
|
||||||
|
|
||||||
ircd::server::init::~init()
|
|
||||||
noexcept
|
|
||||||
{
|
|
||||||
interrupt(), close(), wait();
|
|
||||||
peers.clear();
|
|
||||||
log::debug
|
|
||||||
{
|
|
||||||
log, "All server peers, connections, and requests are clear."
|
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
ircd::server::init::wait()
|
|
||||||
{
|
|
||||||
static const auto finished
|
|
||||||
{
|
|
||||||
[] { return !peer_unfinished(); }
|
|
||||||
};
|
|
||||||
|
|
||||||
while(!dock.wait_for(seconds(5), finished))
|
|
||||||
{
|
|
||||||
for(const auto &[name, peer] : peers)
|
|
||||||
log::dwarning
|
|
||||||
{
|
|
||||||
log, "Waiting for peer %s tags:%zu links:%zu err:%b op[r:%b f:%b]",
|
|
||||||
name,
|
|
||||||
peer->tag_count(),
|
|
||||||
peer->link_count(),
|
|
||||||
peer->err_has(),
|
|
||||||
peer->op_resolve,
|
|
||||||
peer->op_fini,
|
|
||||||
};
|
|
||||||
|
|
||||||
log::warning
|
|
||||||
{
|
|
||||||
log, "Waiting for %zu tags on %zu links on %zu of %zu peers to close...",
|
|
||||||
tag_count(),
|
|
||||||
link_count(),
|
|
||||||
peer_unfinished(),
|
|
||||||
peer_count()
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
ircd::server::init::close()
|
|
||||||
{
|
|
||||||
log::debug
|
|
||||||
{
|
|
||||||
log, "Closing all %zu peers",
|
|
||||||
peer_count()
|
|
||||||
};
|
|
||||||
|
|
||||||
net::close_opts opts;
|
|
||||||
opts.timeout = seconds(close_all_timeout);
|
|
||||||
for(auto &peer : peers)
|
|
||||||
peer.second->close(opts);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
ircd::server::init::interrupt()
|
|
||||||
{
|
|
||||||
log::debug
|
|
||||||
{
|
|
||||||
log, "Cancel %zu tags on %zu links on %zu peers",
|
|
||||||
tag_count(),
|
|
||||||
link_count(),
|
|
||||||
peer_count()
|
|
||||||
};
|
|
||||||
|
|
||||||
for(auto &peer : peers)
|
|
||||||
peer.second->cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// request
|
|
||||||
//
|
|
||||||
|
|
||||||
decltype(ircd::server::request::opts_default)
|
decltype(ircd::server::request::opts_default)
|
||||||
ircd::server::request::opts_default
|
ircd::server::request::opts_default
|
||||||
|
@ -1662,8 +1673,9 @@ noexcept
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// link
|
// server/link.h
|
||||||
//
|
//
|
||||||
|
|
||||||
decltype(ircd::server::link::tag_max_default)
|
decltype(ircd::server::link::tag_max_default)
|
||||||
|
@ -2558,18 +2570,9 @@ const
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// request
|
// server/tag.h
|
||||||
//
|
|
||||||
|
|
||||||
decltype(ircd::server::request::log)
|
|
||||||
ircd::server::request::log
|
|
||||||
{
|
|
||||||
"server.request"
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// tag
|
|
||||||
//
|
//
|
||||||
|
|
||||||
/// Monotonic counter for tags.
|
/// Monotonic counter for tags.
|
||||||
|
|
Loading…
Reference in a new issue