<div class="gmail_quote">On Thu, Sep 24, 2009 at 9:28 PM, Robert O&#39;Callahan <span dir="ltr">&lt;<a href="mailto:robert@ocallahan.org">robert@ocallahan.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Fri, Sep 25, 2009 at 5:52 AM, Darin Fisher <span dir="ltr">&lt;<a href="mailto:darin@chromium.org" target="_blank">darin@chromium.org</a>&gt;</span> wrote:<br></div><div class="gmail_quote"><div class="im">
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<div class="gmail_quote"><div><div></div>No, no... my point is that to the application developer, those &quot;explicit&quot;</div><div>points will appear quite implicit and mysterious.  This is why I called</div><div>
out third-party JS libraries.  One day, a function that you are using</div><div>might transition to scripting a plugin, which might cause a nested</div><div>loop, which could then force the lock to be released.  As a programmer,</div>


<div>the unlocking is not explicit or predictable.</div></div></blockquote></div><div><br>The unlocking around plugin calls is a problem, but it seems to me that any given library function is much more likely start with a plugin-based implementation and eventually switch to a non-plugin-based implementation than the other way around.<br>

<br></div></div></blockquote><div><br></div><div>Suppose a library decides to add sound effects one day.  They&#39;d probably use Flash.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="gmail_quote"><div>Beyond plugins, I hope and expect that library functions don&#39;t suddenly add calls to alert(), showModalDialog() or synchronous XHR.<br><br></div><div>Rob<br></div></div></blockquote><div>
<br></div><div><br></div><div>Anyways, I will the first to admit that my argument is steeped in the hypothetical, but when it comes to thread synchronization, it is important to consider such unlikely cases.  I would greatly prefer a watertight solution instead of just relying on probabilities.</div>
<div><br></div><div>-Darin</div></div>