// Signal to sender that we need a flush to get a consistent view
// of the remaining transactions.
delimit(oo);
oo.flush();
if (trace) log.trace("Waiting for a distributed sync block");
distributedSync.blockUntilAcquired(flushTimeout, MILLISECONDS);
if (trace) log.trace("Distributed sync block received, proceeding with writing commit log");
// Write remaining transactions
transactionLog.writeCommitLog(marshaller, oo);
delimit(oo);