зеркало из https://github.com/mozilla/gecko-dev.git
Bugzilla Bug 331413: assert that the worker threads empty the jobQ before
they terminate. Fix a socket leak when the SSL_ImportFD call in handle_connection fails. r=nelson.bolyard.
This commit is contained in:
Родитель
f0d5f9ffff
Коммит
90d708c409
|
@ -600,6 +600,8 @@ terminateWorkerThreads(void)
|
||||||
while (threadCount > 0) {
|
while (threadCount > 0) {
|
||||||
PZ_WaitCondVar(threadCountChangeCv, PR_INTERVAL_NO_TIMEOUT);
|
PZ_WaitCondVar(threadCountChangeCv, PR_INTERVAL_NO_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
/* The worker threads empty the jobQ before they terminate. */
|
||||||
|
PORT_Assert(PR_CLIST_IS_EMPTY(&jobQ));
|
||||||
PZ_Unlock(qLock);
|
PZ_Unlock(qLock);
|
||||||
|
|
||||||
DESTROY_CONDVAR(jobQNotEmptyCv);
|
DESTROY_CONDVAR(jobQNotEmptyCv);
|
||||||
|
@ -824,12 +826,9 @@ handle_fdx_connection(
|
||||||
cleanup:
|
cleanup:
|
||||||
if (ssl_sock) {
|
if (ssl_sock) {
|
||||||
PR_Close(ssl_sock);
|
PR_Close(ssl_sock);
|
||||||
} else
|
} else if (tcp_sock) {
|
||||||
{
|
|
||||||
if (tcp_sock) {
|
|
||||||
PR_Close(tcp_sock);
|
PR_Close(tcp_sock);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
VLOG(("selfserv: handle_fdx_connection: exiting"));
|
VLOG(("selfserv: handle_fdx_connection: exiting"));
|
||||||
return SECSuccess;
|
return SECSuccess;
|
||||||
|
@ -1178,6 +1177,8 @@ handle_connection(
|
||||||
cleanup:
|
cleanup:
|
||||||
if (ssl_sock) {
|
if (ssl_sock) {
|
||||||
PR_Close(ssl_sock);
|
PR_Close(ssl_sock);
|
||||||
|
} else if (tcp_sock) {
|
||||||
|
PR_Close(tcp_sock);
|
||||||
}
|
}
|
||||||
if (local_file_fd)
|
if (local_file_fd)
|
||||||
PR_Close(local_file_fd);
|
PR_Close(local_file_fd);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче