diff --git a/runtime-rpc/src/main/java/org/capnproto/TwoPartyVatNetwork.java b/runtime-rpc/src/main/java/org/capnproto/TwoPartyVatNetwork.java index 1e82da3..0ae1ecd 100644 --- a/runtime-rpc/src/main/java/org/capnproto/TwoPartyVatNetwork.java +++ b/runtime-rpc/src/main/java/org/capnproto/TwoPartyVatNetwork.java @@ -133,6 +133,10 @@ public class TwoPartyVatNetwork } } + private synchronized void write(MessageBuilder message) { + this.previousWrite = this.previousWrite.thenCompose(void_ -> Serialize.writeAsync(channel, message)); + } + final class OutgoingMessage implements OutgoingRpcMessage { private final MessageBuilder message; @@ -156,7 +160,7 @@ public class TwoPartyVatNetwork @Override public void send() { - previousWrite = previousWrite.thenRun(() -> Serialize.writeAsync(channel, message)); + write(message); } @Override