Rob Ennals wrote:
Missed out the important final qualifier. Here's take 3:

"the user agent MUST NOT release the storage mutex between calls to local storage, except that the user agent MAY release the storage mutex on any API operation /other that a local storage oeration/"


IMHO, this is actually worse than the current proposal of a global mutex :S. This proposal makes atomicity guarantees not only library-dependent, but browser-implementation-dependent. For example

  a = localStorage.x()
  jquery.foo()
  b = localStorage.y()

If |jquery.foo()| were, say, parsing JSON or determining selector matching, it might involve "browser API calls" in some browser, and in others not.

Worse, if |jquery.foo()| involves accessing browser-managed things like computed DOM attributes, then even in the *same* browser it might result in sometimes needing a "browser API call", and sometimes only needing a JS-only call. (Depending on DOM attribute cache status, if present.)

This of course of depends on the definition of "browser API call", but I interpret this as approximately meaning "calling from JS to C++".

These objections are in addition to those made by Jeremy Orlow concerning a script-managed, possibly cross-process mutex, which I also find unpleasant.

Cheers,
Chris

Reply via email to