[203] WorkerGlobalScope
オブジェクトは、
閉じ中フラグを持ちます。
初期状態は偽です。 >>202
[45] WorkerGlobalScope
インターフェイスの
close
メソッドは、次のようにしなければなりません
>>44。
[96] Worker
インターフェイスの
terminate
メソッドは、
関連付けられたワーカーについてワーカーを停止しなければなりません
>>95。
SharedWorker
にはありません。[88] ワーカーを停止するには、 並列に次のようにしなければなりません >>78。
importScripts
のスクリプトが実行停止されることがあります。
その他のスクリプトも (明記されていませんが) 停止するはずです。[73] ワーカーを走らせる処理の最後のワーカーの終了の段階は、 内側設定群とワーカー大域適用範囲を次のようにしなければなりません >>48。
[40] Blob URL Store 内の Blob URL は (暗黙に) 破棄されると思われます。
[87] 利用者エージェントは、ワーカーが closing flag が真に設定されてもなお走り続けている場合で、 active needed worker でなくなった時、 ワーカーを停止させても構いません。 >>78
[111] Worker
や SharedWorker
への参照を破棄すると、そのワーカーにスクリプトからアクセスする手段がなくなるかもしれません。
仕様書上は、それによってワーカーが破棄されるわけではありません。
しかし実際には GC により破棄されるようです >>21。
(著者のスクリプトから観測できない実装の最適化といえるものなので、
仕様書上には現れません。)
[8] サービスワーカーを終端させるには、 サービスワーカーワーカーを次のようにします >>5。
[4] 実行中の handle fetch や Install を失敗させることになる場合があります。
[2] 利用者エージェントは、処理するイベントがなくなったとき、 サービスワーカーを終端させて構いません。 >>1
[3] 利用者エージェントは、無限ループや割当時間超過など、 異常を検知したとき、イベントの処理中であってもサービスワーカーを終端させて構いません。 >>1
[20] Editorial: restructure ownership of workers to parent-owners (annevk著, ) <https://github.com/whatwg/html/commit/59a4750f475acd789ee436b4906972ba2081d8b3>
[84] 利用者エージェントは、いつでもワーカーを殺す処理を実行して構いません。
例えば次の時に実行できます。 >>77
[79] ワーカーを殺すには、
並列に次のようにしなければなりません >>77。
importScripts
のスクリプトが実行停止されることがあります。
その他のスクリプトも (明記されていませんが) 停止するはずです。[21] Remove overly permissive "kill a worker" algorithm (annevk著, ) <https://github.com/whatwg/html/commit/77c694e25adabfc5706b5885fbcc1b0d3d5c4416>
[22] The WHATWG Blog — HTML and shared memory () <https://blog.whatwg.org/html-and-shared-memory>
[23] Meta: export WorkerGlobalScope "closing" dfn (jugglinmike著, ) <https://github.com/whatwg/html/commit/018547046496a8eed2a660544462589e1c7c4ff5>