Make sure workers and nested workers are terminated correctly.
Created attachment 29567 [details] Proposed Patch
The following illustrates how we shut down nested worker and worker: 1) When a worker is terminated, WorkerThread::stop() is called. If there exists nested workers, we will try to stop nested workers first. This is done by calling m_workerContext->stopActiveDOMObjects(). 2) When the nested worker thread is tearing down and nested worker context is destroyed, WorkerMessagingProxy::workerContextDestroyed is called. From here, the parent worker context is notified. 3) When the parent worker context does not have nested worker threads running any more, it starts to shut down its own worker thread.
I think this is still an issue because we do fail WPT tests: https://wpt.fyi/results/workers?label=master&label=experimental&aligned&view=subtest&q=nested%20workers Please correct me for my own learning, if I am wrong. Changing status to "New". In case, if this is different case and it is "RESOLVED WONTFIX" or "RESOLVED INVALID" or "RESOLVED CONFIGURATION CHANGED", please update accordingly. Thanks!
AFAIK we do not support nested workers at all.
https://commits.webkit.org/254597@main
<rdar://problem/100079574>