FWIW,

I very much agree with Dave on this point. My conceptual model for
microtask work is just a re-ordering of work which otherwise would
have run synchronously, but wanted to be run with a fresh stack.

Microtask non-termination should not be different from "regular"
script non-termination.

On Mon, Aug 12, 2013 at 6:09 PM, David Herman <dher...@mozilla.com> wrote:
> On Aug 12, 2013, at 5:43 PM, David Bruant <bruan...@gmail.com> wrote:
>
>>> - I see *no* reasonable alternative to runaway microtask churn other than 
>>> slow-script dialog.
>> So did Dominic [1]. I suggested something else [2] and he found the idea 
>> interesting. What do you think?
>
> Quoting you from
>
>> [2] https://mail.mozilla.org/pipermail/es-discuss/2013-August/032630.html
>
> you said:
>
>> Maybe implementations could decide to break a microtask chain, but
>> instead of prompting a dialog, they just break it and call a callback
>> (later, in a different task, not microtask) so that the script knows and
>> can try to recover.
>
> It is an interesting idea, I missed it the first time around; you might 
> describe it as an asynchronous TimeoutException. I'm thinking about it, but 
> I'm pretty skeptical. It's still effectively preemption semantics. At any 
> nondeterministic (and not portably defined) point, your code can simply be 
> stopped. It's not even clear what the atomicity guarantees would be around 
> valid preemption points in the semantics. For example, can you preempt code 
> halfway through the modification of a 64-bit word? Can you preempt code that 
> hasn't spilled its registers back to memory? Am I scaring you yet? ;-)
>
> Even if we could provide a fully well-specified definition for concurrent 
> interruption, I really have no idea how code could ever realistically recover 
> from such an event. The only thing the system tells you is "at some point in 
> some turn we just stopped you from whatever you were doing," and now you're 
> expected to reconstruct your state. This reminds me of exception safety in 
> C++.
>
> Dave
>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to