/
OSSchedUnlock
OSSchedUnlock
Description
OSSchedUnlock()
re-enables task scheduling whenever it is paired with OSSchedLock()
.
Files
os.h/os_core.c
Prototype
void OSSchedUnlock (OS_ERR *p_err)
Arguments
p_err
is a pointer to a variable that will contain an error code returned by this function.
OS_ERR_NONE
the call is successful and the scheduler is no longer locked.
OS_ERR_OS_NOT_RUNNING
If calling this function before calling OSStart()
.
OS_ERR_SCHED_LOCKED
If the scheduler is still locked. This would indicate that scheduler lock has not fully unnested.
OS_ERR_SCHED_NOT_LOCKED
If the user did not call OSSchedLock()
.
OS_ERR_SCHED_UNLOCK_ISR
If OS_CFG_CALLED_FROM_ISR_CHK_EN
set to DEF_ENABLED
in os_cfg.h
: if you attempted to unlock scheduler from an ISR.
Returned Value
None
Required Configuration
None
Callers
Application.
Notes/Warnings
None
Example Usage
OSSchedUnlock() example usage
void TaskX (void *p_arg) { OS_ERR err; (void)&p_arg; while (DEF_ON) { : OSSchedLock(&err); /* Prevent other tasks to run */ /* Check "err" */ : : /* Code protected from context switch */ : OSSchedUnlock(&err); /* Enable other tasks to run */ /* Check "err" */ : : } }
Related content
OSSchedLock
OSSchedLock
More like this
OSSched
OSSched
More like this
OSSchedRoundRobinYield
OSSchedRoundRobinYield
More like this
OSTaskSemPost
OSTaskSemPost
More like this
OSTaskSemPendAbort
OSTaskSemPendAbort
More like this
OSMutexPost
OSMutexPost
More like this