Fix some issues with transferring conn back to server

This commit is contained in:
2025-08-22 10:51:24 -04:00
parent 1d86f48d5e
commit ba3258ab16
4 changed files with 33 additions and 22 deletions

View File

@@ -9,18 +9,19 @@
std::unique_ptr<Connection>
Connection::createForServer(struct sockaddr_storage addr, int fd, int64_t id,
ConnectionHandler *handler,
size_t epoll_index, ConnectionHandler *handler,
std::weak_ptr<Server> server) {
// Use unique_ptr constructor with private access (friend function)
// We can't use make_unique here because constructor is private
return std::unique_ptr<Connection>(
new Connection(addr, fd, id, handler, server));
new Connection(addr, fd, id, epoll_index, handler, server));
}
Connection::Connection(struct sockaddr_storage addr, int fd, int64_t id,
ConnectionHandler *handler, std::weak_ptr<Server> server)
: fd_(fd), id_(id), addr_(addr), arena_(), handler_(handler),
server_(server) {
size_t epoll_index, ConnectionHandler *handler,
std::weak_ptr<Server> server)
: fd_(fd), id_(id), epoll_index_(epoll_index), addr_(addr), arena_(),
handler_(handler), server_(server) {
if (auto server_ptr = server_.lock()) {
server_ptr->active_connections_.fetch_add(1, std::memory_order_relaxed);
}