зеркало из https://github.com/mozilla/pjs.git
21723. a=chofmann, r=rpotts. AsyncOpen() in the socket transport was spinning out of control, causing socket transport thread deadlock. Now we move the socket transport off of the work queue after an AsyncOpen call
This commit is contained in:
Родитель
3d22ed7e09
Коммит
b2a9280e75
|
@ -498,6 +498,11 @@ nsresult nsSocketTransport::Process(PRInt16 aSelectFlags)
|
|||
mStatus = doConnection(aSelectFlags);
|
||||
if (NS_SUCCEEDED(mStatus) && mOpenObserver) {
|
||||
mOpenObserver->OnStartRequest(this, mOpenContext);
|
||||
NS_ASSERTION(mOperation == eSocketOperation_Connect, "bad state");
|
||||
mCurrentState = gStateTable[mOperation][mCurrentState];
|
||||
mOperation = eSocketOperation_None;
|
||||
done = PR_TRUE;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1512,7 +1517,7 @@ NS_IMETHODIMP
|
|||
nsSocketTransport::AsyncOpen(nsIStreamObserver *observer, nsISupports* ctxt)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
|
||||
// Enter the socket transport lock...
|
||||
nsAutoLock aLock(mLock);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче