- From: Jungkee Song <notifications@github.com>
- Date: Mon, 09 Jan 2017 02:36:12 -0800
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/pull/1049/review/15675711@github.com>
jungkees commented on this pull request.
> : Output
:: None
- 1. If |event|'s <a>extend lifetime promises</a> is empty, unset |event|'s <a>extensions allowed flag</a> and abort these steps.
- 1. Let |extendLifetimePromises| be an empty array.
- 1. Run the following substeps <a>in parallel</a>:
- 1. *SetupPromiseArray*: Set |extendLifetimePromises| to a copy of |event|'s <a>extend lifetime promises</a>.
- 1. Wait until all the <a>promises</a> in |extendLifetimePromises| settle.
- 1. If the length of |extendLifetimePromises| does not equal the length of |event|'s <a>extend lifetime promises</a>, jump to the step labeled *SetupPromiseArray*.
- 1. Unset |event|'s <a>extensions allowed flag</a>.
-
- The user agent *should not* <a lt="terminate service worker">terminate</a> the [=/service worker=] associated with |event|'s <a>relevant settings object</a>'s [=environment settings object/global object=] until |event|'s <a>extensions allowed flag</a> is unset. However, the user agent *may* impose a time limit to this lifetime extension.
+ 1. Wait, [=in parallel=], until |promise| is settled and |promise|'s <code>then</code> methods, if any, in the task where |promise| has been settled have executed.
+ 2. [=Queue a microtask=], on |promise|'s [=relevant settings object=]'s [=responsible event loop=], to decrease |event|'s [=ExtendableEvent/pending promises count=] by one.
Now ECMAScript's "PromiseJobs" are queued through https://html.spec.whatwg.org/#enqueuejob(queuename,-job,-arguments). I think those steps are not run in the main thread but in a thread in the JS engine internals.
> you cannot queue microtasks from parallel algorithms.
The reason it doesn't make sense is because it is run in a parallel thread? Or it's running off the main thread?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/pull/1049
Received on Monday, 9 January 2017 10:37:11 UTC