Fix some issues with transferring conn back to server
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user