History

change std::list to internal implementation and add the new ut file for CWelsCircleQueue https://rbcommons.com/s/OpenH264/r/1310/

Sijia Chen committed 11 years ago

Commit eb00d5c1 parent 757a5966 files · +235 −18Browse files

Showing the changes to codec/common/src/WelsThreadPool.cpp (1 of 6 files). Show all

Unified · Split

codec/common/src/WelsThreadPool.cpp+11−15
@@ -50,6 +50,7 @@ namespace WelsCommon { · 49 unmodified lines
5050
5151 CWelsThreadPool::CWelsThreadPool (IWelsThreadPoolSink* pSink, int32_t iMaxThreadNum) :
5252 m_pSink (pSink) {
53+ m_cWaitedTasks = new CWelsCircleQueue<IWelsTask>();
5354 m_iMaxThreadNum = 0;
5455
5556 Init (iMaxThreadNum);
@@ -58,6 +59,8 @@ CWelsThreadPool::CWelsThreadPool (IWelsThreadPoolSink* pSink, int32_t iMaxThread · 2 unmodified lines
5859
5960 CWelsThreadPool::~CWelsThreadPool() {
6061 Uninit();
62+
63+ delete m_cWaitedTasks;
6164 }
6265
6366 WELS_THREAD_ERROR_CODE CWelsThreadPool::OnTaskStart (CWelsTaskThread* pThread, IWelsTask* pTask) {
@@ -239,7 +242,7 @@ WELS_THREAD_ERROR_CODE CWelsThreadPool::RemoveThreadFromBusyMap (CWelsTaskThread · 175 unmodified lines
239242 void CWelsThreadPool::AddTaskToWaitedList (IWelsTask* pTask) {
240243 CWelsAutoLock cLock (m_cLockWaitedTasks);
241244
242− m_cWaitedTasks.push_back (pTask);
245+ m_cWaitedTasks->push_back (pTask);
243246 return;
244247 }
245248
@@ -267,37 +270,30 @@ int32_t CWelsThreadPool::GetIdleThreadNum() { · 21 unmodified lines
267270 }
268271
269272 int32_t CWelsThreadPool::GetWaitedTaskNum() {
270− return static_cast<int32_t> (m_cWaitedTasks.size());
273+ return m_cWaitedTasks->size();
271274 }
272275
273276 IWelsTask* CWelsThreadPool::GetWaitedTask() {
274277 CWelsAutoLock lock (m_cLockWaitedTasks);
275−
276− if (m_cWaitedTasks.size() == 0) {
278+ if (m_cWaitedTasks->size() == 0) {
277279 return NULL;
278280 }
279281
280− std::list<IWelsTask*>::iterator it = m_cWaitedTasks.begin();
281− IWelsTask* pTask = *it;
282+ IWelsTask* pTask = m_cWaitedTasks->begin();
282283
283− m_cWaitedTasks.pop_front();
284+ m_cWaitedTasks->pop_front();
284285
285286 return pTask;
286287 }
287288
288289 void CWelsThreadPool::ClearWaitedTasks() {
289290 CWelsAutoLock cLock (m_cLockWaitedTasks);
290−
291− std::list<IWelsTask*>::iterator iter = m_cWaitedTasks.begin();
292−
293291 if (m_pSink) {
294− while (iter != m_cWaitedTasks.end()) {
295− m_pSink->OnTaskCancelled (*iter);
296− ++ iter;
292+ while (0 != m_cWaitedTasks->size()) {
293+ m_pSink->OnTaskCancelled (m_cWaitedTasks->begin());
294+ m_cWaitedTasks->pop_front();
297295 }
298296 }
299−
300− m_cWaitedTasks.clear();
301297 }
302298
303299 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t