aboutsummaryrefslogtreecommitdiff
path: root/pw_log_rpc
diff options
context:
space:
mode:
Diffstat (limited to 'pw_log_rpc')
-rw-r--r--pw_log_rpc/rpc_log_drain.cc6
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()) {