コード例 #1
0
void   CWelsTaskManageBase::Uninit() {
  DestroyTasks();
  WELS_DELETE_OP (m_pThreadPool);

  delete m_cTaskList;
  WelsEventClose (&m_hTaskEvent);
}
コード例 #2
0
void CWelsTaskManageBase::DestroyTaskList (TASKLIST_TYPE* pTargetTaskList) {
  //printf ("CWelsTaskManageBase: pTargetTaskList size=%d m_iTotalTaskNum=%d\n", static_cast<int32_t> (pTargetTaskList->size()), m_iTotalTaskNum);
  while (NULL != pTargetTaskList->begin()) {
    CWelsBaseTask* pTask = pTargetTaskList->begin();
    WELS_DELETE_OP (pTask);
    pTargetTaskList->pop_front();
  }
  pTargetTaskList = NULL;
}
コード例 #3
0
void   CWelsTaskManageBase::Uninit() {
  DestroyTasks();
  WELS_DELETE_OP (m_pThreadPool);

  for (int32_t iDid = 0; iDid < MAX_DEPENDENCY_LAYER; iDid++) {
    delete m_cEncodingTaskList[iDid];
    delete m_cPreEncodingTaskList[iDid];
  }
  WelsEventClose (&m_hTaskEvent);
}
コード例 #4
0
ファイル: WelsThreadPool.cpp プロジェクト: huili2/openh264
WELS_THREAD_ERROR_CODE CWelsThreadPool::Uninit() {
  WELS_THREAD_ERROR_CODE iReturn = WELS_THREAD_ERROR_OK;
  CWelsAutoLock  cLock (m_cLockPool);

  iReturn = StopAllRunning();
  if (WELS_THREAD_ERROR_OK != iReturn) {
    return iReturn;
  }

  m_cLockIdleTasks.Lock();
  while (m_cIdleThreads->size() > 0) {
    DestroyThread (m_cIdleThreads->begin());
    m_cIdleThreads->pop_front();
  }
  m_cLockIdleTasks.Unlock();

  Kill();

  WELS_DELETE_OP(m_cWaitedTasks);
  WELS_DELETE_OP(m_cIdleThreads);
  WELS_DELETE_OP(m_cBusyThreads);

  return iReturn;
}
コード例 #5
0
void CWelsTaskManageBase::DestroyTasks() {
  if (m_iTaskNum == 0)
    return;

  if (m_cTaskList->size() != m_iTaskNum) {
    //printf("m_cTaskList %d %d\n", static_cast<int32_t>(m_cTaskList->size()), m_iTaskNum);
    //WELS_ERROR_TRACE ("CWelsTaskManage::DestroyTasks:  Incorrect task numbers");
  }

  while (NULL != m_cTaskList->begin()) {
    CWelsBaseTask* pTask = m_cTaskList->begin();
    WELS_DELETE_OP (pTask);
    m_cTaskList->pop_front();
  }
  m_iTaskNum = 0;
}
コード例 #6
0
ファイル: WelsThreadPool.cpp プロジェクト: huili2/openh264
void  CWelsThreadPool::DestroyThread (CWelsTaskThread* pThread) {
  pThread->Kill();
  WELS_DELETE_OP(pThread);

  return;
}