It does seem like OOM indeed but it may be different because with multiple threads it's much easier to get into effects like this, you don't need to allocate a lot of objects.<div>For example, lets say there is something like this:</div>
<div><br></div><div>function computeStuff() { ... }  // takes 100ms to compute stuff</div><div>setInterval(computeStuff, 10);</div><div><br></div><div>in normal situation, the single-threaded JS implementation would not normally post another callback until the computeStuff() returns - since timers are not checked nor timer events fetched until the previous callback yields control, it's hard to implement this in a way that can produce out-of-memory. In multithreaded implementation (with Workers) the main thread that processes timers could stuff the Worker's queue at 10ms intervals while the Worker will process those callbacks at 100ms interval.  </div>
<div><br></div><div>Same can happen with postMessage. On a fast computer it will just work, on a slow it can go out of memory.<br></div><div><br></div><div>Not sure if it should be reflected in the spec itself though...</div>
<div><br></div><div>Dmitry</div><div><br><br><div class="gmail_quote">On Tue, Nov 18, 2008 at 5:32 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><div></div><div class="Wj3C7c">On Wed, Nov 19, 2008 at 2:08 PM, Dmitry Titov <span dir="ltr"><<a href="mailto:dimich@chromium.org" target="_blank">dimich@chromium.org</a>></span> wrote:<br>
<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
Pages communicate with their workers (dedicated) via <a href="http://www.whatwg.org/specs/web-workers/current-work/#the-queue" target="_blank">queue of events</a> . What happens if the queue gets more and more events queued (as a result of postMessage or timer callbacks) and the worker thread does not consume them fast enough?<div>


<br></div><div><ul><li>setInterval can skip posting a callback if the previously posted one was not yet consumed. <br></li><li>setTimeout is probably ok as it is but if the worker script adds them in a loop it can be a problem.<br>


</li><li>postMessage could somehow indicate a queue overflow and ignore the attempt to post a message if the queue length exceeds some specific threshold.<br></li></ul></div><div><br></div><div>Basically, the queue probably should have a limit on it and once the limit is reached, the queue-based operations should start to fail, optionally with some indication.</div>

</blockquote><div> </div></div></div></div>How is this different from any other out-of-memory situation? Web APIs generally don't specify OOM behaviour.<br><br clear="all">Rob<br><font color="#888888">-- <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>


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