void TASK_wait() { while (task_sys.head == 0) { #if defined(CONFIG_OS) & defined(CONFIG_TASK_QUEUE_IN_THREAD) OS_cond_wait(&task_sys.cond, NULL); #else arch_sleep(); #endif } }
static s32_t sfos_exe(enum sfos_op op) { s32_t res; OS_mutex_lock(&sfos.sig_mutex); sfos.state = op; TASK_run(sfos.kernel_task, op, sfos.args); while (sfos.state != FS_OP_IDLE) { OS_cond_wait(&sfos.cond, &sfos.sig_mutex); } res = sfos.sig_res; OS_mutex_unlock(&sfos.sig_mutex); return res; }