I really like the idea of some generic yield, though I wonder if there's some reason it hasn't been added earlier.  People have been using the setTimeout(..., 0) trick for a while to get around slow script warnings (and general unresponsiveness)...so surely something like this must have come up before?  If so, what were the drawbacks?<div>
<div><br><div class="gmail_quote">On Mon, Mar 23, 2009 at 2:24 PM, Robert O'Callahan <span dir="ltr"><<a href="mailto:robert@ocallahan.org">robert@ocallahan.org</a>></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 Tue, Mar 24, 2009 at 7:41 AM, Jeremy Orlow <span dir="ltr"><<a href="mailto:jorlow@google.com" target="_blank">jorlow@google.com</a>></span> wrote:<br><div class="gmail_quote"><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">One thing that hasn't been considered yet is some sort of optional hint to say "I'm done" in terms of accessing localStorage.  Maybe call it localStorage.checkpoint() or localStroage.commit()?</div>


<div class="gmail_quote"><br></div><div class="gmail_quote">As far as the browser implemenation is concerned, a call to this function would be the same as the script ending.  The great thing about this is that if a developer found one problem location in their code, they could add it--but it'd be completely optional.</div>

</blockquote><div></div></div><br></div>You mean if they find a performance problem due to overlarge lock scope?<br><br>That's not a terrible idea. It certainly makes far more sense to be safe by default and add constructs and code to gain a bit more parallelism, than to be unsafe and parallel by default and have to add constructs and code to get safety.<br>

<br>I'm not sure what the semantics of a standalone "commit()" would be, though. I think a better construct might be some sort of "yield" which explicitly returns to a (nested) browser event loop and basically acts as a script completion point. Even browsers that only use a single thread can run the event loop there so that testing in those browsers will reveal bugs.<div>
<div></div><div class="h5"><br>
<br clear="all">Rob<br>-- <br>"He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all." [Isaiah 53:5-6]<br>


</div></div></blockquote></div><br></div></div>