mirror of
https://github.com/matrix-construct/construct
synced 2024-11-25 08:12:37 +01:00
ircd::client: Move client make_shared into ircd/client.cc due to SO issues.
This commit is contained in:
parent
03c353599c
commit
26ed7c2770
3 changed files with 14 additions and 14 deletions
|
@ -35,6 +35,7 @@ struct ircd::client
|
|||
static ctx::pool pool;
|
||||
static uint64_t ctr; // monotonic
|
||||
|
||||
static void create(const std::shared_ptr<socket> &);
|
||||
static size_t count(net::ipport remote);
|
||||
static void interrupt_all();
|
||||
static void close_all();
|
||||
|
@ -62,7 +63,6 @@ struct ircd::client
|
|||
bool main();
|
||||
bool async();
|
||||
|
||||
public:
|
||||
client(std::shared_ptr<socket>);
|
||||
client(client &&) = delete;
|
||||
client(const client &) = delete;
|
||||
|
|
|
@ -242,6 +242,17 @@ ircd::client::wait_all()
|
|||
pool.join();
|
||||
}
|
||||
|
||||
void
|
||||
ircd::client::create(const std::shared_ptr<socket> &sock)
|
||||
{
|
||||
const auto client
|
||||
{
|
||||
std::make_shared<ircd::client>(sock)
|
||||
};
|
||||
|
||||
client->async();
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::client::count(net::ipport remote)
|
||||
{
|
||||
|
|
|
@ -157,18 +157,7 @@ load_listener(const m::event &event)
|
|||
return load_listener(name, opts);
|
||||
}
|
||||
|
||||
void
|
||||
_listener_action(const std::shared_ptr<socket> &sock)
|
||||
{
|
||||
const auto client
|
||||
{
|
||||
std::make_shared<ircd::client>(sock)
|
||||
};
|
||||
|
||||
client->async();
|
||||
}
|
||||
|
||||
bool
|
||||
static bool
|
||||
_listener_proffer(const net::ipport &ipport)
|
||||
{
|
||||
if(unlikely(ircd::runlevel != ircd::runlevel::RUN))
|
||||
|
@ -221,7 +210,7 @@ try
|
|||
"A listener with the name '%s' is already loaded", name
|
||||
};
|
||||
|
||||
listeners.emplace_back(name, opts, _listener_action, _listener_proffer);
|
||||
listeners.emplace_back(name, opts, client::create, _listener_proffer);
|
||||
return true;
|
||||
}
|
||||
catch(const std::exception &e)
|
||||
|
|
Loading…
Reference in a new issue