diff --git a/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp b/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp index a8810bf345b8..0056494bcc5b 100644 --- a/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp +++ b/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp @@ -1611,6 +1611,10 @@ nsXMLHttpRequest::Send(nsIVariant *aBody) if (!(mState & XML_HTTP_REQUEST_ASYNC)) { while (mState & XML_HTTP_REQUEST_SYNCLOOPING) { modalEventQueue->ProcessPendingEvents(); + + // Be sure not to busy wait! (see bug 273578) + if (mState & XML_HTTP_REQUEST_SYNCLOOPING) + PR_Sleep(PR_MillisecondsToInterval(10)); } mEventQService->PopThreadEventQueue(modalEventQueue);