cleanup

此方法會在刪除 RiCOSTask 物件之後,清除記憶體。

簽章
void RiCOSTask_cleanup (RiCOSTask *const me);
參數
me

要在用過之後清除的 RiCOSTask 物件

範例
void RiCOSTask_cleanup(RiCOSTask * const me)
{
   if (me == NULL) return;

   if (!me->isWrapperThread) {
      RiCOSEventFlag_cleanup(&me->m_SuspEventFlag);
      /* 移除執行緒。 */
      if (me->endOSTaskInCleanup) {
         RiCBoolean onMyTask = RiCOSTask_exeOnMyTask(me);
         if (!((RiCOSTask_endOfProcess) &&
            RiCOSTask_exeOnMyTask(me))) {
            /* 如果這是處理程序的結尾,
               則不結束 (kill) OS 執行緒,且正在執行的執行緒
               為 'this' - 您需要該 OS 執行緒,來執行
               部分清除作業,然後您
               明確低結束 (kill) 它。 */
            RiCOSTaskEndCallBack theOSTaskEndClb = NULL;
            void * arg1 = NULL;
            /* 取得回呼函數,以結束 OS
               執行緒。 */
            (void)RiCOSTask_getTaskEndClbk(me,
               &theOSTaskEndClb, &arg1, onMyTask);
            if (theOSTaskEndClb != NULL) {
               /* 結束 OS 執行緒 */
               (*theOSTaskEndClb)(arg1);
            }
         }
      }
   }
}

回饋