[whatwg] WebWorkers vs. Threads

Kristof Zelechovski giecrilj at stegny.2a.pl
Thu Aug 14 00:50:11 PDT 2008

I do not know about implementing setTimeout, this should be rather
straightforward.  However, using setTimeout to do anything serious requires
chunking and yielding as described below, which is an academic exercise
IMHO.  I expect that WebWorkers would give a better abstraction than
setTimeout (like throw vs longjmp).
My example about {++g.i} was about how automatic locking of global variables
is not enough, not about the advantages of using workers.  I would expect
the worker to send "increment g.i" to the main thread, not "set g.i to
$value".  If "increment" is replaced with something infeasible, we have a
problem.  However, I would not be sure incrementing is unlikely to fail;
were it so, WIN32::InterlockedIncrement would be pointless.

-----Original Message-----
From: Shannon [mailto:shannon at arc.net.au] 
Sent: Wednesday, August 13, 2008 8:51 PM
To: Kristof Zelechovski
Cc: 'Jonas Sicking'; 'WHAT working group'
Subject: Re: [whatwg] WebWorkers vs. Threads

Kristof Zelechovski wrote:
> A background task invoked by setTimeout has to be split to small chunks;
> _yielding_ occurs when each chunk ends (having called setTimeout to
> the next chunk).  It is very hard to code in this way; you have to
> an explicit stack and create an exit/entry point at every chunk boundary.
> This technique is interesting as an academic exercise only, real-world
> developers will be right to stay away from it.

I'm not sure I get your meaning. If this is how current browsers 
implement setTimeout then how is it "academic"? Also since nobody is 
talking about deprecating setTimeout I don't see how its relevant. 
Whatever happens setTimeout remains an issue that real-world developers 
can't stay away from.

More information about the whatwg mailing list