Index: security/manager/ssl/src/nsCertVerificationThread.cpp =================================================================== --- security.orig/manager/ssl/src/nsCertVerificationThread.cpp +++ security/manager/ssl/src/nsCertVerificationThread.cpp @@ -123,12 +123,8 @@ nsresult nsCertVerificationThread::addJo return NS_OK; } -#define CONDITION_WAIT_TIME PR_TicksPerSecond() / 4 - void nsCertVerificationThread::Run(void) { - const PRIntervalTime wait_time = CONDITION_WAIT_TIME; - while (PR_TRUE) { nsBaseVerificationJob *job = nsnull; @@ -139,7 +135,7 @@ void nsCertVerificationThread::Run(void) while (!mExitRequested && (0 == verification_thread_singleton->mJobQ.GetSize())) { // no work to do ? let's wait a moment - PR_WaitCondVar(mCond, wait_time); + PR_WaitCondVar(mCond, PR_INTERVAL_NO_TIMEOUT); } if (mExitRequested) Index: security/manager/ssl/src/nsSSLThread.cpp =================================================================== --- security.orig/manager/ssl/src/nsSSLThread.cpp +++ security/manager/ssl/src/nsSSLThread.cpp @@ -386,6 +386,8 @@ PRStatus nsSSLThread::requestClose(nsNSS close_later = PR_TRUE; ssl_thread_singleton->mSocketScheduledToBeDestroyed = si; + + PR_NotifyAllCondVar(ssl_thread_singleton->mCond); } } @@ -875,8 +877,7 @@ void nsSSLThread::Run(void) { // no work to do ? let's wait a moment - PRIntervalTime wait_time = PR_TicksPerSecond() / 4; - PR_WaitCondVar(mCond, wait_time); + PR_WaitCondVar(mCond, PR_INTERVAL_NO_TIMEOUT); } } while (!pending_work && !mExitRequested && !mSocketScheduledToBeDestroyed);