[whatwg] Terminate a Worker algorithm
Ian Hickson
ian at hixie.ch
Mon Dec 15 22:43:04 PST 2008
On Mon, 24 Nov 2008, Alexey Proskuryakov wrote:
>
> 1) The algorithm assumes that a WorkerGlobalScope exists, and doesn't
> specify what happens if it is invoked before WorkerGlobalScope is
> created (e.g. if the script is still being loaded, or the scope is being
> created, but Worker.terminate() is called from JS). I think that the
> right behavior is to re-invoke the algorithm after the scope is created,
> because it may be too late to prevent its creation.
It can't be invoked before the WorkerGlobalScope is created. The
WorkerGlobalScope is created before the constructor returns the Worker
object.
> 2) Events in WorkerGlobalScope event queue are dropped when terminating a
> worker, but messages posted to Worker are not. I think that the expected
> behavior is that after calling Worker.terminate(), no messages will be
> dispatched to worker's event listeners.
Once 'closing' is set to true, the queue discards any additional tasks.
> 3) "If there are any events in the queue of events other than the close
> event that this algorithm just added, discard them without dispatching
> them." - I don't see where the close event is added for terminate
> algorithm, and this looks like a copy/paste mistake, because the event
> won't be dispatched anyway.
Fixed.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list