Subject: [quicwg/base-drafts] Stream Send State Machine is Confusing (#2357)

From: martinduke <[email-masked]>
Date: Tue, 22 Jan 2019 16:55:20 +0000 (UTC)

The send state machine diagram says that if the "Peer Creates Bidirectional Stream" it should transition to READY and then to SEND. The text says ""a bidrectional stream initiated by a peer... enters the 'Ready' state then immediately transitions to the 'Send' state if the receiving part enters the 'Recv' state."

This seems unnecessarily indirect and opaque. I suggest that instead we say that if a host receives STREAM, STREAM_DATA_BLOCKED, RESET_STREAM, MAX_STREAM_DATA, or STOP_SENDING on an unopened, peer-initiated bidirectional stream, it transitions directly to the "Send" state.

If people agree, I'll file a PR.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2357

---

From: martinduke <[email-masked]>
Date: Tue, 22 Jan 2019 17:00:03 +0000 (UTC)

"or the peer creates a higher-numbered stream"

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2357#issuecomment-456477250

---

From: Martin Thomson <[email-masked]>
Date: Tue, 22 Jan 2019 21:38:11 +0000 (UTC)

The current structure is deliberate (operating from memory here, there are too many PRs to search through), because it captures all the events through the one entry-point.  Don't feel constrained to follow the state machine in your implementation.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2357#issuecomment-456573284