init

이 메소드는 RiCOSTask 오브젝트를 초기화합니다.

시그니처
RiCBoolean RiCOSTask_init (RiCOSTask *const me,
   RiCOSTaskEndCallBack tfunc, void *param, 
   const char *name, const long stackSize);
매개변수
me

초기화할 RiCOSTask 오브젝트입니다.

tfunc

현재 운영 체제 태스크를 종료하는 콜백 함수입니다.

param

콜백 함수에 대한 매개변수입니다.

이름

태스크 이름입니다.

stackSize

스택 크기입니다.

리턴값

성공한 경우 이 메소드는 RiCTRUE를 리턴합니다.

예제
RiCBoolean RiCOSTask_init(RiCOSTask * const me, 
   RiCOSTaskEndCallBack tfunc, void * param, 
   const char * name, const long stackSize)
{
   size_t i, len = 0;
   char* myName = NULL;

   if (me == NULL) {return 0;}

   me->endOSTaskInCleanup = TRUE;
   me->isWrapperThread = 0;

   /* Copy the thread name. */
   if (name != NULL) len = strlen(name);
   /* check for legal name */
   for (i = 0; i < len; i++) {
      if ((isalnum((int)name[i]) == 0) && 
         (name[i] != '_')) {
         len = 0;
         break;
      }
   }
   if (len > 0) {
      myName = malloc(len + 1);
      strcpy(myName, name);
   }
   RiCOSEventFlag_init(&me->m_SuspEventFlag);
   RiCOSEventFlag_reset(&me->m_SuspEventFlag);
   /* Create SUSPENDED thread !!!!!! */
   me->m_ExecFunc = tfunc;
   me->m_ExecParam = param;
   me->hThread = 0;
   me->hThread = taskSpawn(myName, 
      /* name of new task (stored at pStackBase) */
      (int) PRIORITY_NORMAL, /* priority of new task */
      0,      /* task option word */ 
      (int)stackSize, /*size (bytes) of stack needed */
      (int (*)())preExecFunc, /* thread function */
      (int)(void *)me, /* argument to thread function */    
      0,0,0,0,0,0,0,0,0);
   return 1; 
}

피드백