Add Connection::reset
There was an issue where the connection deque was referring to old arena memory
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user