Daira Hopwood (2013-12-07T23:11:06.000Z)
I was reading the draft specification of an ES6 promise API in
<https://github.com/domenic/promises-unwrapping/blob/master/README.md>,
and noticed that the definition of microtasks seems underspecified.

I see this has been discussed to some extent in
<https://github.com/promises-aplus/promises-spec/issues/139>. However,
it seems to have been implicitly assumed that the execution model is
sequential. Given that things called "tasks" in several other languages
are executed in parallel, it seems to me that this assumption should be
made explicit. That is, it should be explicitly stated that microtasks
must be executed to completion sequentially with respect to other code
and other microtasks. (Otherwise, there can be data races on accesses
to shared locations, which is clearly not desirable or intended.)

-- 
Daira Hopwood ⚥


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20131207/1835676c/attachment.sig>
domenic at domenicdenicola.com (2013-12-10T01:48:36.881Z)
I was reading the draft specification of an ES6 promise API in https://github.com/domenic/promises-unwrapping/blob/master/README.md, and noticed that the definition of microtasks seems underspecified.

I see this has been discussed to some extent in https://github.com/promises-aplus/promises-spec/issues/139. However, it seems to have been implicitly assumed that the execution model is
sequential. Given that things called "tasks" in several other languages
are executed in parallel, it seems to me that this assumption should be
made explicit. That is, it should be explicitly stated that microtasks
must be executed to completion sequentially with respect to other code
and other microtasks. (Otherwise, there can be data races on accesses
to shared locations, which is clearly not desirable or intended.)