Fix "YesHandler" in design.md

This commit is contained in:
2025-08-19 16:04:20 -04:00
parent 450bf6dbf1
commit b843e1d5a2

View File

@@ -414,20 +414,21 @@ private:
class YesHandler : public ConnectionHandler { class YesHandler : public ConnectionHandler {
public: public:
void on_connection_established(Connection &conn) override { void on_connection_established(Connection &conn) override {
// Start writing immediately // Write an initial "y\n"
on_write_progress(conn); conn.appendMessage("y\n");
} }
void on_write_progress(std::unique_ptr<Connection> &conn_ptr) override { void on_write_progress(std::unique_ptr<Connection> &conn) override {
// Write "y\n" repeatedly if (conn->outgoingBytesQueued() == 0) {
if (conn_ptr->outgoingBytesQueued() == 0) // Don't use an unbounded amount of memory
conn_ptr->appendMessage("y\n"); conn->reset();
// Write "y\n" repeatedly
conn->appendMessage("y\n");
} }
} }
}; };
``` ```
### Arena-Based String Handling ### Arena-Based String Handling
```cpp ```cpp
// Preferred: Zero-copy string view with arena allocation // Preferred: Zero-copy string view with arena allocation