diff -ru mozilla/security/manager/ssl/src/nsCertVerificationThread.cpp mozilla-diff/security/manager/ssl/src/nsCertVerificationThread.cpp --- mozilla/security/manager/ssl/src/nsCertVerificationThread.cpp 2006-04-14 00:07:18.000000000 +0200 +++ mozilla-diff/security/manager/ssl/src/nsCertVerificationThread.cpp 2007-06-18 18:32:13.169975833 +0200 @@ -123,12 +123,8 @@ 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 @@ 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) diff -ru mozilla/security/manager/ssl/src/nsSSLThread.cpp mozilla-diff/security/manager/ssl/src/nsSSLThread.cpp --- mozilla/security/manager/ssl/src/nsSSLThread.cpp 2007-04-03 19:00:42.000000000 +0200 +++ mozilla-diff/security/manager/ssl/src/nsSSLThread.cpp 2007-06-18 18:35:30.672955121 +0200 @@ -386,6 +386,8 @@ close_later = PR_TRUE; ssl_thread_singleton->mSocketScheduledToBeDestroyed = si; + + PR_NotifyAllCondVar(ssl_thread_singleton->mCond); } } @@ -875,8 +877,7 @@ { // 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);