Summary: | Investigate using the thread pool instead of a dedicated thread for WorkQueue on Windows | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Adam Roben (:aroben) <aroben> | ||||
Component: | WebKit2 | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | abarth, andersca, eric, sam, webkit.review.bot | ||||
Priority: | P2 | Keywords: | InRadar, PlatformOnly | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 42826 | ||||||
Attachments: |
|
Description
Adam Roben (:aroben)
2010-07-28 14:51:29 PDT
We probably wouldn't want to do this until we had switched to using an I/O completion port in WorkQueue (bug 43148). But I'm not so sure this will work well for us, at least not with ::RegisterWaitForSingleObject. That function will cause a new worker thread to be spawned every time the I/O completion port is signaled, even if another thread is already processing a message from the completion port. This is OK for correctness, as the worker thread will then immediately block on ::GetQueuedCompletionStatus until the other thread(s) finish their work. But it could mean that lots of threads end up sitting around blocked on ::GetQueuedCompletionStatus if it takes longer for a message to be processed than it takes for the completion port to get signaled again. Created attachment 65721 [details]
Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows
Comment on attachment 65721 [details]
Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows
r+
Committed r66506: <http://trac.webkit.org/changeset/66506> http://trac.webkit.org/changeset/66506 might have broken Leopard Intel Debug (Tests) The following changes are on the blame list: http://trac.webkit.org/changeset/66505 http://trac.webkit.org/changeset/66506 http://trac.webkit.org/changeset/66507 http://trac.webkit.org/changeset/66508 http://trac.webkit.org/changeset/66509 |