[webkit-dev] Merging the iOS port to svn.webkit.org (Re: WebCore and interlocking threads)

David Kilzer ddkilzer at webkit.org
Fri Feb 8 16:07:23 PST 2013


On Feb 8, 2013, at 2:52 PM, Adam Barth <abarth at webkit.org> wrote:

> On Fri, Feb 8, 2013 at 2:45 PM, David Kilzer <ddkilzer at webkit.org> wrote:
> 
>> The iOS port does not require re-architecting WebCore.
>> 
>> Bug 109071 was about coming up with a better name for a method that is primarily used in ASSERT()s in WebCore.  Without changing the implementation of that method, debug builds of WebCore on iOS assert instantly since WebCore execution can happen on one of two threads.
>> 
>> We can live with keeping the method name as "isMainThread()" and have already moved on to other things.
>> 
>> The rest of WebCore is largely unchanged for iOS, other than the usual port-specific code you need for a port, which will be posted for review as we continue to merge.
> 
> How do these multiple interlocked threads interact with code that uses
> thread-local storage?


The UI (main) thread and the web thread share the same thread-local storage.  Those code changes are in 4 or 5 files in WTF.

There are also a couple of additional mutexes in WebCore for WebSQL and the DOM wrapper cache.

Access to WebCore itself is mediated by a coarse-grained lock (the web thread lock), which is taken outside of WebCore.

Dave



More information about the webkit-dev mailing list