diff --git a/sched/task/task_setup.c b/sched/task/task_setup.c index 891d281d52d..363ac99d27c 100644 --- a/sched/task/task_setup.c +++ b/sched/task/task_setup.c @@ -368,6 +368,16 @@ static int nxthread_setup_scheduler(FAR struct tcb_s *tcb, int priority, tcb->flags &= ~TCB_FLAG_TTYPE_MASK; tcb->flags |= ttype; + /* Set the appropriate scheduling policy in the TCB */ + + tcb->flags &= ~TCB_FLAG_POLICY_MASK; +#if CONFIG_RR_INTERVAL > 0 + tcb->flags |= TCB_FLAG_SCHED_RR; + tcb->timeslice = MSEC2TICK(CONFIG_RR_INTERVAL); +#else + tcb->flags |= TCB_FLAG_SCHED_FIFO; +#endif + #ifdef CONFIG_CANCELLATION_POINTS /* Set the deferred cancellation type */