<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Feb 9, 2013, at 3:01 PM, James Robinson &lt;<a href="mailto:jamesr@google.com">jamesr@google.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br><br><div class="gmail_quote">On Sat, Feb 9, 2013 at 11:52 AM, Maciej Stachowiak <span dir="ltr">&lt;<a href="mailto:mjs@apple.com" target="_blank">mjs@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;">
<div style="word-wrap:break-word"><br><div><div class="h5"><br></div></div><div>P.S. "Running WebCore on interlocking threads" is a needlessly scary way to describe what iOS WebKit does. There is no complex fine-grained locking or actual parallel execution. It's more like what would happen if you ran WebKit on a GCD dispatch queue or a thread in a userspace M:N threading library, instead of on an underlying OS-level thread (really it's a restricted subset of that). As such, it has very little impact on WebCore and below. Mainly it just requires that the threading primitives have an appropriate platform implementation on iOS.</div>
</div></blockquote><div><br></div><div><a href="http://trac.webkit.org/changeset/141812">http://trac.webkit.org/changeset/141812</a> (<a href="https://bugs.webkit.org/show_bug.cgi?id=108139">https://bugs.webkit.org/show_bug.cgi?id=108139</a>) added fine-grain locking to the AtomicString table in order to support the iOS WebKit threading model. &nbsp;If parallel execution is not possible, why would this need locking?</div>
</div></blockquote><br></div><div>This is one of the few pieces of code that gets touched for other threads, mainly because pieces of WebCore get used for some non-Web-content-related drawing. I'll have to do research if you want to know in more detail.</div><div><br></div><div>Because it's the weekend and I have the copious free time, I will go over the full set of diffs and post a full list of the threading-model-related changes that are required in WebCore and below. I expect it to be surprisingly short and low-impact, but I will post it even if it looks grim.</div><div><br></div><div>Regards,</div><div>Maciej</div><div><br></div></body></html>