此方法會在刪除 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);
}
}
}
}
}