13 Aug 2012 14:26
Proposal and WIP implementation for refactoring cross thread communication
Kwonjin Jeong <gram <at> company100.net>
2012-08-13 12:26:23 GMT
2012-08-13 12:26:23 GMT
Hi, WebKit.
There are several implementations of threads, tasks and cross thread communication. e.g. FileThread, DatabaseThread and StorageThread perform blocking IO asynchronously and invoke callbacks using ScriptExecutionContext. Each of these implementation is pretty similar, but there is no code sharing at all.
So, my team at Company 100 is trying to refactor cross thread communication. We wrote an API proposal and modified some thread code to use our new API.
As the first step, we added two new abstractions for cross thread communcation:
1) TaskThread is our new abstraction for the task thread. FileThread, DatabaseThread and other task threads reuse the code by inheriting from TaskThread.
2) We also added CrossThreadFunction. It's used to pass a task to the task thread and invoke callbacks. CrossThreadFunction is similar to WTF::Function but it has some additional features. e.g., cross-thread parameter copying and ref counting.
Please refer to the following bug for details:
We welcome feedbacks on our work.
Thanks.
====================
Kwonjin Jeong
Computer Scientist
Company 100, Inc.
Phone: +82-10-9528-2581
====================
_______________________________________________ webkit-dev mailing list webkit-dev <at> lists.webkit.org http://lists.webkit.org/mailman/listinfo/webkit-dev
RSS Feed