diff options
Diffstat (limited to 'pw_log_rpc')
-rw-r--r-- | pw_log_rpc/rpc_log_drain.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/pw_log_rpc/rpc_log_drain.cc b/pw_log_rpc/rpc_log_drain.cc index 0e03c1617..2f1003c3c 100644 --- a/pw_log_rpc/rpc_log_drain.cc +++ b/pw_log_rpc/rpc_log_drain.cc @@ -58,7 +58,11 @@ Status RpcLogDrain::Flush() { log_sink_state = EncodeOutgoingPacket(encoder, packed_entry_count); // Avoid sending empty packets. if (encoder.size() == 0) { - server_writer_.ReleaseBuffer(); + // Release buffer when still active to keep the writer in a replaceable + // state. + if (server_writer_.active()) { + server_writer_.ReleaseBuffer(); + } continue; } if (const Status status = server_writer_.Write(encoder); !status.ok()) { |