Call a task as a sub-task and wait for its return value.
- Parameters
-
| [in] | entry | entry function of the sub-task, of type vsf_task_entry_t |
| [in] | param | pointer to the target (parameter) of the sub-task |
| [in] | local_size | size of the local variables of the sub-task frame |
- Returns
- fsm_rt_t: the return value of the sub-task when it finishes, or fsm_rt_yield while the sub-task is scheduled to run
- Note
- This is an internal function, please use vsf_task_call_task() instead.
- Note
- if VSF_ERR_NOT_ENOUGH_RESOURCES is detected, yield and try it again (automatically). For tasks sharing the same frame pool, if the pool is too small, only task performance will be affected, and all sub-task call will work when frame is allocated.
- if the frame is allocated and pushed to the stack, we should yield to let the sub-task run.
Since in either way, we will yield, no need to handle the return value of vsf_eda_call().