Open badeend opened 7 months ago
I've updated the definitions. Pretty much the entire text has changed so please check again (sorry).
Noteworty changes:
result
.flush-on-block
parameter. TBH, I'm not quite happy with this as-is, because there are a bazillion flushing strategies. The current version uses I/O readiness for its heuristic. Ideally, the input stream should have a native way to to have a way to return a flush signal from the read
operation.forward
states: "Any attempt to access or drop the streams in the meantime will trap.". This is the simplest to implement. Another valid strategy could be to say that while the forward is in progress, any read/write attempt will return their EWOULDBLOCK equivalent until the forward is finished. This latter solution is less surprising to end users, but more difficult to implement.I have not added the forward-error
variant (yet), see above.
After discussion in #73, I realized my interpretation of flush was not quite correct. I've removed the flush-on-block
flag.
During the plumber's summit I noticed that a forwarding mechanism was up for consideration in preview2.1. So, here's my take.