From 6e9588666383fa8d5362469cb6b41dce9720dcd8 Mon Sep 17 00:00:00 2001 From: Ben Turner Date: Wed, 12 Aug 2009 17:33:02 -0700 Subject: [PATCH] Bug 510061 - 'Workers: Don't allow setInterval to flood the worker queue.' r+sr=jst --- dom/src/threads/nsDOMWorkerTimeout.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/dom/src/threads/nsDOMWorkerTimeout.cpp b/dom/src/threads/nsDOMWorkerTimeout.cpp index 69513c9fcf1..5d16fb397e4 100644 --- a/dom/src/threads/nsDOMWorkerTimeout.cpp +++ b/dom/src/threads/nsDOMWorkerTimeout.cpp @@ -307,15 +307,8 @@ nsDOMWorkerTimeout::Start() return NS_OK; } - PRInt32 type; - if (mIsInterval) { - type = nsITimer::TYPE_REPEATING_SLACK; - } - else { - type = nsITimer::TYPE_ONE_SHOT; - } - - nsresult rv = mTimer->InitWithCallback(this, mInterval, type); + nsresult rv = mTimer->InitWithCallback(this, mInterval, + nsITimer::TYPE_ONE_SHOT); NS_ENSURE_SUCCESS(rv, rv); mStarted = PR_TRUE; @@ -343,6 +336,9 @@ nsDOMWorkerTimeout::Run() if (mIsInterval) { mTargetTime = PR_Now() + mInterval * (PRTime)PR_USEC_PER_MSEC; + nsresult rv2 = mTimer->InitWithCallback(this, mInterval, + nsITimer::TYPE_ONE_SHOT); + NS_ENSURE_SUCCESS(rv2, rv2); } return rv;