https://www.w3.org/Bugs/Public/show_bug.cgi?id=23743
Bug ID: 23743 Summary: Divide "arraybuffer" StreamReadType into "arraybuffer/exact" and "arraybuffer" Product: WebAppsWG Version: unspecified Hardware: All OS: All Status: NEW Severity: normal Priority: P2 Component: Streams API Assignee: tyosh...@google.com Reporter: tyosh...@google.com QA Contact: public-webapps-bugzi...@w3.org CC: m...@w3.org, public-webapps@w3.org The purpose of size argument of read() are - allow user to get notified only when the specified size of data is available and get it as one non-fragmented ArrayBufferView - flow control. I.e. not to tell the producer to generate, receive from wire, etc. too much Current interface doesn't allow flow controlled consumption without specifying size N which means until N bytes become available, we don't get the result. read() without argument helps for this case, but it's unclear how many bytes read() pulls. If we differentiate exact read and non-exact read mode, we can give read() clearer semantics - read() in exact mode: Prohibit? - read(N) in exact mode: I can accept up to N bytes. tell me when exactly N bytes are available - read() in non-exact mode: tell me when any amount of data is available - read(N) in non-exact mode: I can accept up to N bytes. tell me when any bytes are available -- You are receiving this mail because: You are on the CC list for the bug.