Closed jan-ivar closed 10 months ago
The SendStream write algorithm says: "Send bytes on stream.[[InternalStream]] and wait for the operation to complete."
But what does "complete" mean?
the receiver has acked it?
A non-normative note suggests it's "not necessarily" 3 and "may just" be 1:
I think we more strongly need to say it's not 3. I think we more strongly need to say it's not 2.
This avoids blocking on the network process, which would be great.
At minimum, "complete" must be beyond the last point of local failure, because the write promise has been resolved. I.e. 1.
write
But atomic writes in #551 fail if blocked on flow control, putting the last point of local failure past flow control. IOW:
atomicWrite
Does the same invariant hold for non-atomic writes?
I think it needs to be 1 and yes for symmetry and sanity. I.e. "complete" means
We should clarify that.
This seems like a duplicate of #426.
Meeting:
The SendStream write algorithm says: "Send bytes on stream.[[InternalStream]] and wait for the operation to complete."
But what does "complete" mean?
the receiver has acked it?
A non-normative note suggests it's "not necessarily" 3 and "may just" be 1:
I think we more strongly need to say it's not 3. I think we more strongly need to say it's not 2.
This avoids blocking on the network process, which would be great.
At minimum, "complete" must be beyond the last point of local failure, because the
write
promise has been resolved. I.e. 1.Flow control
But atomic writes in #551 fail if blocked on flow control, putting the last point of local failure past flow control. IOW:
atomicWrite
means sending passed flow controlDoes the same invariant hold for non-atomic writes?
write
means sending passed flow controlwrite
andatomicWrite
have different guaranteesI think it needs to be 1 and yes for symmetry and sanity. I.e. "complete" means
We should clarify that.