ReadonlyflushIssues whatever is pending, now.
Never fails: the outcome goes to the callers waiting on the batch, not to whoever asked for the flush.
ReadonlypendingAddresses currently held. Intended for tests.
Holds a write for the window, then issues it with whatever else arrived.
Completes with the flush result for its address. A later write can supersede its value, and a downstream cache can suppress the physical write.
Optionalattributes: ModbusSpanAttributesOptionaloptions: WriteOptionsHolds several writes for the window, as one caller.
A caller that already holds every value does not need a collection point, but it still must not go around the batch: a write held for one of these addresses would otherwise reach the device after the newer value. The result covers the flush, but separate bus transactions are not atomic.
With a window of zero the group is issued at once, so a caller of this method gets packed transactions with no debouncer at all.
Optionalattributes: ModbusSpanAttributesOptionaloptions: WriteOptionsAdds several writes to the batch and flushes immediately.
Optionalattributes: ModbusSpanAttributesOptionaloptions: WriteOptionsAdds a write to the batch and flushes immediately, rather than waiting.
This is an enqueue and then a flush, not a path around the batch. A write already pending for the same address is superseded, so the newest value is the one that reaches the device. A path that went around the batch would let an older held value be written after a newer immediate one.
Optionalattributes: ModbusSpanAttributesOptionaloptions: WriteOptions
A collection point for writes that arrive separately.