mirror of
https://github.com/debauchee/barrier.git
synced 2026-11-06 15:27:39 +08:00
Fixed thread reference leak in network code.
This commit is contained in:
@@ -827,7 +827,10 @@ const int*
|
||||
CArchNetworkBSD::getUnblockPipe()
|
||||
{
|
||||
CArchMultithreadPosix* mt = CArchMultithreadPosix::getInstance();
|
||||
return getUnblockPipeForThread(mt->newCurrentThread());
|
||||
CArchThread thread = mt->newCurrentThread();
|
||||
const int* p = getUnblockPipeForThread(thread);
|
||||
ARCH->closeThread(thread);
|
||||
return p;
|
||||
}
|
||||
|
||||
const int*
|
||||
|
||||
@@ -418,6 +418,7 @@ CArchNetworkWinsock::pollSocket(CPollEntry pe[], int num, double timeout)
|
||||
CArchMultithreadWindows* mt = CArchMultithreadWindows::getInstance();
|
||||
CArchThread thread = mt->newCurrentThread();
|
||||
WSAEVENT* unblockEvent = (WSAEVENT*)mt->getNetworkDataForThread(thread);
|
||||
ARCH->closeThread(thread);
|
||||
if (unblockEvent == NULL) {
|
||||
unblockEvent = new WSAEVENT;
|
||||
*unblockEvent = WSACreateEvent_winsock();
|
||||
|
||||
Reference in New Issue
Block a user