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:
valeski%netscape.com 1999-12-15 00:28:39 +00:00
Родитель 76b192e1f0
Коммит 85b9c156a7
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -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);