Thank you very much for time spent on this. I think it clearly shown
you were right.
I will take for granted that browser is queing function calls/event
routines so such single piece of code should be (for now, in current
firefox at least) atomic.
Thanks again.

On 10 Lis, 15:30, Anthony Lieuallen <[email protected]> wrote:
> On 11/10/09 06:03, Kodak wrote:
>
> > ..  is browser queing all function calls/event routines?
>
> Yes.  Try this:
>
> http://arantius.info/looper.html
>
> Open one window with one tab, with this page.  Click 'start' and you'll
> see that
>
> A) Your CPU (or one of its cores) pegs to 100% utilization.
> B) The entire browser becomes very unresponsive.
>
> The browser is unresponsive because it's written in XUL+JS, and its JS
> can't execute while JS in the page is executing -- there's only one
> global thread.
>
> You should note that the time between "end" (of one loop) and "start"
> (of the next) that it reports is very small, probably well under 10ms.
> If you can, refresh the page so it isn't running anymore (or force kill
> and restart the browser).  Open a second window with this page.  Click
> start in one, see the very small delays.  Click start in the other, and
> you'll see the delay between loops jumps to at least 1 second, in my
> case around 1.2 seconds.  The JS in one window has to wait for the JS in
> the other window to loop, before it gets to execute again.
>
> Or, to repeat myself, with proof this time:
>
> Javascript in Firefox is single threaded.  Across all tabs, windows,
> etc.  You have to start an entire separate instance of Firefox (and that
> must be on a separate profile because of how Firefox works) to get
> another concurrent thread.
>
> P.S. Web worker threads [1] are an exception to this.  You'll note the
> restrictive API they get, however.  That's how they work.  JS is single
> threaded in Firefox, basically because there's so much legacy JS that is
> not single threaded.
>
> P.P.S. You might also note that Chrome does not exhibit this particular
> behavior.  Each of Chrome's tabs/windows execute in a separate OS-level
> process, and do not block each other for execution.  I'm not sure how it
> handles the potential problem of cross-window access.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"greasemonkey-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/greasemonkey-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to