Restore item deletions in Windows UDP.

TEST=voe_auto_test on Windows.

Review URL: http://webrtc-codereview.appspot.com/331013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1275 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
andrew@webrtc.org 2011-12-21 19:58:11 +00:00
parent 71571c5446
commit 697bc43b67

View File

@ -64,8 +64,10 @@ UdpSocket2ManagerWindows::~UdpSocket2ManagerWindows()
StopWorkerThreads(); StopWorkerThreads();
// All threads are stopped. Safe to delete them. // All threads are stopped. Safe to delete them.
while(_workerThreadsList.First() != NULL) ListItem* pItem = NULL;
while((pItem = _workerThreadsList.First()) != NULL)
{ {
delete static_cast<UdpSocket2WorkerWindows*>(pItem->GetItem());
_workerThreadsList.PopFront(); _workerThreadsList.PopFront();
} }
@ -180,19 +182,14 @@ bool UdpSocket2ManagerWindows::StartWorkerThreads()
// Create worker threads. // Create worker threads.
WebRtc_UWord32 i = 0; WebRtc_UWord32 i = 0;
WebRtc_Word32 error = 0; bool error = false;
while(i < _numOfWorkThreads && !error) while(i < _numOfWorkThreads && !error)
{ {
UdpSocket2WorkerWindows* pWorker = UdpSocket2WorkerWindows* pWorker =
new UdpSocket2WorkerWindows(_ioCompletionHandle); new UdpSocket2WorkerWindows(_ioCompletionHandle);
if(pWorker == NULL) if(pWorker->Init() != 0)
{ {
error = 1; error = true;
break;
}
if(pWorker->Init())
{
error = 1;
delete pWorker; delete pWorker;
break; break;
} }
@ -209,8 +206,10 @@ bool UdpSocket2ManagerWindows::StartWorkerThreads()
"creating work threads", "creating work threads",
_managerNumber); _managerNumber);
// Delete worker threads. // Delete worker threads.
while(_workerThreadsList.First() != NULL) ListItem* pItem = NULL;
while((pItem = _workerThreadsList.First()) != NULL)
{ {
delete static_cast<UdpSocket2WorkerWindows*>(pItem->GetItem());
_workerThreadsList.PopFront(); _workerThreadsList.PopFront();
} }
_pCrit->Leave(); _pCrit->Leave();