void OSSchedUnlock(OS_ERR *p_err);
...
File
...
Called from
...
Code enabled by
Description
OSSchedUnlock()
re-enables task scheduling whenever it is paired with OSSchedLock()
.
Files
os.h/os_core.c
...
Task only
...
N/A
...
Prototype
Code Block |
---|
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 If calling this function before calling OSStart()
.
OS_ERR_SCHED_LOCKED
if If the scheduler is still locked. This would indicate that scheduler lock has not fully unnested.
OS_ERR_SCHED_NOT_LOCKED
if If the user did not call OSSchedLock()
.
OS_ERR_SCHED_UNLOCK_ISR
if If OS_CFG_CALLED_FROM_ISR_CHK_EN
set to 1
in 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
Code Block | ||
---|---|---|
| ||
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" */
:
:
}
} |