Bug 25255 - Support termination of nested workers.
Summary: Support termination of nested workers.
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
Depends on:
Blocks: 22723
  Show dependency treegraph
Reported: 2009-04-16 17:43 PDT by Jian Li
Modified: 2013-08-07 05:22 PDT (History)
2 users (show)

See Also:

Proposed Patch (7.91 KB, patch)
2009-04-16 17:52 PDT, Jian Li
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jian Li 2009-04-16 17:43:13 PDT
Make sure workers and nested workers are terminated correctly.
Comment 1 Jian Li 2009-04-16 17:52:10 PDT
Created attachment 29567 [details]
Proposed Patch
Comment 2 Jian Li 2009-04-16 18:12:53 PDT
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.