It originally worked this way, but was changed by commit
a8a8a3e0965201df88bdfdff08f50e5c06c552b7, since which time it's been impossible
for walreceiver to ever send a reply with write_location and flush_location
set to different values.
while (walrcv_receive(0, &type, &buf, &len))
XLogWalRcvProcessMsg(type, buf, len);
+ /* Let the master know that we received some data. */
+ XLogWalRcvSendReply();
+
/*
* If we've written some records, flush them to disk and let the
* startup process and primary server know about them.