Bug 43150

Summary: Investigate using the thread pool instead of a dedicated thread for WorkQueue on Windows
Product: WebKit Reporter: Adam Roben (:aroben) <aroben>
Component: WebKit2Assignee: 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 Flags
Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows andersca: review+

Adam Roben (:aroben)
Reported 2010-07-28 14:51:29 PDT
We should investigate using the Windows thread pool [1] instead of a dedicated thread for WorkQueue on Windows. This would be more similar to how WorkQueue works on Mac, and would hopefully improve performance overall. We'd probably implement this by using ::RegisterWaitForSingleObject. 1. http://msdn.microsoft.com/en-us/library/ms686756(v=VS.85).aspx
Attachments
Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows (13.97 KB, patch)
2010-08-27 09:25 PDT, Adam Roben (:aroben)
andersca: review+
Adam Roben (:aroben)
Comment 1 2010-07-28 14:52:20 PDT
Adam Roben (:aroben)
Comment 2 2010-08-05 09:35:05 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.
Adam Roben (:aroben)
Comment 3 2010-08-27 09:25:50 PDT
Created attachment 65721 [details] Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows
Anders Carlsson
Comment 4 2010-08-29 14:45:07 PDT
Comment on attachment 65721 [details] Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows r+
Adam Roben (:aroben)
Comment 5 2010-08-31 10:59:13 PDT
Note You need to log in before you can comment on or make changes to this bug.