- From: Jan-Ivar Bruaroey <jib@mozilla.com>
- Date: Fri, 19 Jun 2015 12:03:22 -0400
- To: Eric Rescorla <ekr@rtfm.com>
- CC: Peter Thatcher <pthatcher@google.com>, "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <55843D4A.9080104@mozilla.com>
On 6/18/15 11:11 PM, Eric Rescorla wrote: > On Thu, Jun 18, 2015 at 3:53 PM, Jan-Ivar Bruaroey <jib@mozilla.com > <mailto:jib@mozilla.com>> wrote: > > On 6/8/15 10:13 PM, Eric Rescorla wrote: >> On Mon, Jun 8, 2015 at 6:24 PM, Jan-Ivar Bruaroey >> <jib@mozilla.com <mailto:jib@mozilla.com>> wrote: >> >> On 6/8/15 7:01 PM, Peter Thatcher wrote: >>> ... setting them individually just doesn't make sense >>> because the time between setting them would cause the >>> RtpSender to be in an invalid, broken, or awkward state. >> >> Sorry to disagree, but the "time between setting them" will >> /*not*/ do that. >> >> It isn't possible, because RtpSender is *not allowed* to >> observably progress in that time, /because JS is a >> single-threaded model/. >> >> Like it or not, this is why we queue a task for everything: >> to keep JS in the dark about anything happening in parallel >> to its execution >> >> RtpSender is not above this law, and must queue a task before >> altering any of its properties in response to time. >> >> >> But we've already established that this isn't true with respect >> to time, so it's not clear to >> me that this is in fact an invariant. Can you please point to a >> specification requirement >> (i.e. not an experiment) that supports your argument that changes >> to RtpSender cannot >> have observable side effects before we return to a JS stable state? > > Sorry for the delay in answering this good question. I've learned > that while these realities > > > Except that I've shown that they're not realities, at least with > regards to time. I meant the realities that while (hardware) time is observable, scant other concurrent data is - on purpose - at least coming out of specs that queue a task whenever they update JS on things. The latter seems informative here, not the former. > are not formalized as spec requirements anywhere, the Tag is > working on guidelines to enshrine design principles around > WebAPIs, that include preserving the run-to-completion semantics > of JavaScript (basically that any data observed within the > function will stay constant as long as that function is active). > > I hope that answers the question. > > > Not really. If you wish to rely on this, please provide a citation. It's still "in progress": https://w3ctag.github.io/design-principles/#js-rtc .: Jan-Ivar :.
Received on Friday, 19 June 2015 16:03:55 UTC