Add Connection::reset

There was an issue where the connection deque was referring to old arena memory
This commit is contained in:
2025-08-19 16:03:33 -04:00
parent 05e22fbac2
commit 450bf6dbf1
3 changed files with 10 additions and 7 deletions

View File

@@ -118,10 +118,6 @@ bool Connection::writeBytes() {
}
assert(messages_.empty());
// Reset arena after completing request/response cycle
// This reclaims memory from request parsing and response generation
arena_.reset();
return false;
}

View File

@@ -52,6 +52,13 @@ struct Connection {
return result;
}
void *user_data = nullptr;
void reset() {
assert(messages_.empty());
arena_.reset();
messages_ =
std::deque<std::string_view, ArenaStlAllocator<std::string_view>>{
ArenaStlAllocator<std::string_view>{&arena_}};
}
// Note: To release connection back to server, use
// Server::releaseBackToServer(std::move(connection_ptr))