- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 06 Aug 2008 08:50:40 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/workers In directory hutz:/tmp/cvs-serv2059 Modified Files: Overview.html Log Message: Remove mention of MessagePort.active; add worker.port; fix the algorithms to work with the new HTML5 definitions. (whatwg r35) Index: Overview.html =================================================================== RCS file: /sources/public/html5/workers/Overview.html,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- Overview.html 6 Aug 2008 02:10:38 -0000 1.27 +++ Overview.html 6 Aug 2008 08:50:38 -0000 1.28 @@ -485,10 +485,13 @@ <hr> <p>A worker is said to be an <dfn id=active>active front-line worker</dfn> - if at least one of the <a href="#the-workers0">the worker's ports</a> has - both an <code title=dom-MessagePort-active>active</code> attribute whose - value is true and an entangled <code>MessagePort</code> whose owner is a - <code>Window</code> object. + if at least one of the <a href="#the-workers0">the worker's ports</a> is + entangled with a <code>MessagePort</code> <var title="">p</var> whose + owner is a <code>Window</code> object whose <span>active document</span> + is the <code>Document</code> that was that <span>browsing context</span>'s + <span>active document</span> when that <code>MessagePort</code> <var + title="">p</var> was created, and that <code>Document</code> is + <span>fully active</span>. <p>A worker is said to be an <dfn id=active0>active needed worker</dfn> if either: @@ -569,7 +572,9 @@ one.</p> <p class=note>This will usually add an event to the <a - href="#queue">queue of events</a>. If it does, that event will have a + href="#queue">queue of events</a> and set the <code + title=dom-WorkerGlobalScope-port>port</code> property on the <var + title="">worker</var> object. If it does, that event will have a <code>MessagePort</code> and thus the list of <a href="#the-workers0">the worker's ports</a> will not be empty. If it doesn't, then the next step will set the <var title="">worker</var> @@ -577,16 +582,16 @@ href="#closing">closing</a></code> attribute to true.</p> <li> - <p>Start monitoring <var title="">worker</var>, such that as soon as the - worker stops being a <a href="#needed">needed worker</a>, the <var - title="">worker</var> object's <code - title=dom-WorkerGlobalScope-closing><a + <p><strong>Closing orphan workers</strong>: Start monitoring <var + title="">worker</var>, such that as soon as the worker stops being a <a + href="#needed">needed worker</a>, the <var title="">worker</var> + object's <code title=dom-WorkerGlobalScope-closing><a href="#closing">closing</a></code> attribute is set to true.</p> <li> - <p>Start monitoring <var title="">worker</var>, such that whenever the - <var title="">worker</var> object's <code - title=dom-WorkerGlobalScope-closing><a + <p><strong>Suspending workers</strong>: Start monitoring <var + title="">worker</var>, such that whenever the <var title="">worker</var> + object's <code title=dom-WorkerGlobalScope-closing><a href="#closing">closing</a></code> attribute is false and the worker is not an <a href="#active0">active needed worker</a>, the user agent suspends execution of script in that worker until such time as either @@ -602,9 +607,7 @@ <p class=note>If the script gets aborted by the "<a href="#kill-a">kill a worker</a>" algorithm, then that same algorithm will cause there to only be a single event in the <a href="#queue">queue of events</a> at the - next step, namely the <code title=message-unload>unload</code> event. - However, if the event is ignored then it will become true as soon as - that port is garbage collected.</p> + next step, namely the <code title=message-unload>unload</code> event.</p> <li> <p><i>Event loop</i>: Wait until either there is an event in the <a @@ -628,8 +631,7 @@ <li> <p class=big-issue>timers, intervals, XMLHttpRequests, database - transactions, etc, must be killed; ports must be deactivated and - unentangled (do not send unload)</p> + transactions, etc, must be killed; ports must be unentangled</p> </ol> <hr> @@ -646,6 +648,10 @@ href="#workerglobalscope">WorkerGlobalScope</a></code> object's <a href="#queue">queue of events</a>, targetted at the <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object itself. + </li> + <!-- XXX shouldn't add one if closing is + already true, assuming unload has already been added to the queue + (?) --> <li> <p>Set the worker's <code><a @@ -656,10 +662,10 @@ <li> <p>Wait a user-agent-defined amount of time. If the "<a href="#run-a">run a worker</a>" processing model defined above immediately starts running - event listeners registered for <code title=event-unload>unload</code> - event, this time should not be zero — the idea is that the <code - title=event-unload>unload</code> event can be used to clean up when - shutting down unexpectedly. + event listeners registered for the <code + title=event-unload>unload</code> event, this time should not be zero + — the idea is that the <code title=event-unload>unload</code> + event can be used to clean up when shutting down unexpectedly. <li> <p>If there are any events in the <a href="#queue">queue of events</a> @@ -720,10 +726,6 @@ <p>Unentangle the two ports. <li> - <p>Set both ports' <code title=dom-MessagePort-active>active</code> - attribute to false. - - <li> <p>At the next available opportunity, after any scripts have finished executing<!-- XXX queue -->, <span>fire a simple event</span> called <code title=event-unload>unload</code> at the other port (the one @@ -871,7 +873,12 @@ <p>If that algorithm invokes the steps for <dfn id=success title="worker creation succeeded">success steps</dfn>, then <a href="#connect" title="connect to a worker">connect</a> to this new worker, with the - newly created port.</p> + newly created port, and if that algorithm returns a second new port, + then add a new property <code + title=dom-WorkerGlobalScope-port>port</code> on the new worker's + <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object, + whose value is the <code>MessagePort</code> object return by the <a + href="#connect">connect to a worker</a> algorithm.</p> <p>Otherwise, if the <dfn id=worker>worker creation failed</dfn>, then at the next available opportunity, after any scripts have finished @@ -922,6 +929,9 @@ href="#workerglobalscope">WorkerGlobalScope</a></code> object's <a href="#queue">queue of events</a>, targetted at the <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object itself. + + <li> + <p>Return the newly created port. </ol> <h2 id=apis-available><span class=secno>3. </span>APIs available to workers</h2>
Received on Wednesday, 6 August 2008 08:51:15 UTC