<meta charset="utf-8"><div><div class="h5">On Thu, Sep 17, 2009 at 1:32 AM, Ian Hickson <span dir="ltr">&lt;<a href="mailto:ian@hixie.ch" target="_blank">ian@hixie.ch</a>&gt;</span> wrote:</div></div><div class="gmail_quote">

<div><div class="h5"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">

On Tue, 15 Sep 2009, Jonas Sicking wrote:<br>&gt;<br>&gt; First off, I agree that not having localStorage in workers is a big<br>&gt; problem that we need to address.<br>&gt;<br>&gt; If I were designing the localStorage interface today I would use the<br>

&gt; above interface that you suggest. Grabbing localStorage can only be done<br>&gt; asynchronously, and while you&#39;re using it, no one else can get a<br>&gt; reference to it. This way there are no race conditions, but also no way<br>

&gt; for anyone to have to lock.<br>&gt;<br>&gt; So one solution is to do that in parallel to the current localStorage<br>&gt; interface. Let&#39;s say we introduce a &#39;clientStorage&#39; object. You can only<br>&gt; get a reference to it using a &#39;getClientStorage&#39; function. This function<br>

&gt; is available both to workers and windows. The storage is separate from<br>&gt; localStorage so no need to worry about the &#39;storage mutex&#39;.<br><br>I think we should be very careful before introducing a fourth storage<br>

mechanism to make sure that whatever we introduce really is something<br>that&#39;s going to be very useful and really solve problems. I&#39;d really<br>rather not rush into adding yet another mechanism at this point.<br>

</blockquote><div><br></div></div></div><div>Sure.  But what about the other idea Robert and Drew had (in the workers + local storage thread) about just having a WorkerLocalStorage mechanism?  Only workers would be able to access it and the interface would be exactly the same as LocalStorage.  The only difference is that the data is in a separate area (and pages/workers cannot share data).  (Though we could, in the future, add such an async interface if we wanted to allow pages to access it.)  I know the burden for implementation in WebKit is low, and I imagine (though don&#39;t know for sure) that the burden would be low in other browsers as well.</div>

</div>