OSSched

Description

OSSched() allows a task to call the scheduler. You would use this function after doing a series of “posts” where you specified OS_OPT_POST_NO_SCHED as a post option.

OSSched() can only be called by task-level code. Also, if the scheduler is locked (i.e., OSSchedLock() was previously called), then OSSched() will have no effect.

If a higher-priority task than the calling task is ready-to-run, OSSched() will context switch to that task.

Files

os.h/os_core.c

Prototype

void  OSSched (void)

Arguments

None

Returned Value

None

Required Configuration

None

Callers

Application.

Notes/Warnings

None

Example Usage

OSSched() example usage
          void TaskX (void *p_arg)
          {
              (void)&p_arg;
              while (DEF_ON) {
                  :
                  OS??Post(...);         /* Posts with OS_OPT_POST_NO_SCHED option         */
                  /* Check "err" */
                  :
                  :
                  OS??Post(...);    
                  /* Check "err" */
                  :
                  :
                  OS??Post(...);
                  /* Check "err" */
                  :
                  :
                  OSSched();           /* Run the scheduler                              */
                  :
                  :
              }
          }