From 697bc43b6714faf9a0f22bf443e3211014dab89e Mon Sep 17 00:00:00 2001 From: "andrew@webrtc.org" Date: Wed, 21 Dec 2011 19:58:11 +0000 Subject: [PATCH] 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 --- .../source/udp_socket2_manager_windows.cc | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/modules/udp_transport/source/udp_socket2_manager_windows.cc b/src/modules/udp_transport/source/udp_socket2_manager_windows.cc index 5b6ee3f40e..0356331bdd 100644 --- a/src/modules/udp_transport/source/udp_socket2_manager_windows.cc +++ b/src/modules/udp_transport/source/udp_socket2_manager_windows.cc @@ -64,8 +64,10 @@ UdpSocket2ManagerWindows::~UdpSocket2ManagerWindows() StopWorkerThreads(); // All threads are stopped. Safe to delete them. - while(_workerThreadsList.First() != NULL) + ListItem* pItem = NULL; + while((pItem = _workerThreadsList.First()) != NULL) { + delete static_cast(pItem->GetItem()); _workerThreadsList.PopFront(); } @@ -180,19 +182,14 @@ bool UdpSocket2ManagerWindows::StartWorkerThreads() // Create worker threads. WebRtc_UWord32 i = 0; - WebRtc_Word32 error = 0; + bool error = false; while(i < _numOfWorkThreads && !error) { UdpSocket2WorkerWindows* pWorker = new UdpSocket2WorkerWindows(_ioCompletionHandle); - if(pWorker == NULL) + if(pWorker->Init() != 0) { - error = 1; - break; - } - if(pWorker->Init()) - { - error = 1; + error = true; delete pWorker; break; } @@ -209,8 +206,10 @@ bool UdpSocket2ManagerWindows::StartWorkerThreads() "creating work threads", _managerNumber); // Delete worker threads. - while(_workerThreadsList.First() != NULL) + ListItem* pItem = NULL; + while((pItem = _workerThreadsList.First()) != NULL) { + delete static_cast(pItem->GetItem()); _workerThreadsList.PopFront(); } _pCrit->Leave();