WK2 and Chromium both have embedder-specific abstractions for a thread that runs tasks, e.g. - WebKit2/platform/RunLoop.h - WebKit/chromium/public/WebThread.h I'm wondering if we should have a generalized version of these abstractions available in WebCore. Two systems that could be refactored to use this: - WebCore/fileapi/FileThread - WebCore/platform/chromium/CCThread Are there other use cases? Should we actually do this?
(In reply to comment #0) > WK2 and Chromium both have embedder-specific abstractions for a thread that runs tasks, e.g. > - WebKit2/platform/RunLoop.h > - WebKit/chromium/public/WebThread.h > > I'm wondering if we should have a generalized version of these abstractions available in WebCore. > > Two systems that could be refactored to use this: > - WebCore/fileapi/FileThread > - WebCore/platform/chromium/CCThread > > Are there other use cases? Should we actually do this? FWIW, the WebKit2 RunLoop class is just a platform abstraction for a system run loop. We also have a WorkQueue class which is a light-weight thread (on OS X it's actually a libdispatch queue) that can run tasks. It would definitely be worth moving them down to either WebCore or even WTF.
> It would definitely be worth moving them down to either WebCore or even WTF. The tentative plan is to move them to WTF.
(In reply to comment #2) > > It would definitely be worth moving them down to either WebCore or even WTF. > > The tentative plan is to move them to WTF. Cool. To ask a dumb question, can you have run loops for things != the main thread in the Wk2 abstraction?
(In reply to comment #3) > (In reply to comment #2) > > > It would definitely be worth moving them down to either WebCore or even WTF. > > > > The tentative plan is to move them to WTF. > > > Cool. To ask a dumb question, can you have run loops for things != the main thread in the Wk2 abstraction? Yes, the run loop objects are allocated in thread-specific storage.
Awesome. That sounds like a great building block... is there a bug for that that I should merge this into?