diff options
Diffstat (limited to 'src/core/ao_task.c')
| -rw-r--r-- | src/core/ao_task.c | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/src/core/ao_task.c b/src/core/ao_task.c index 4593bd79..65654731 100644 --- a/src/core/ao_task.c +++ b/src/core/ao_task.c @@ -125,6 +125,7 @@ ao_sleep(__xdata void *wchan)  	ao_yield();  	if (ao_cur_task->wchan) {  		ao_cur_task->wchan = NULL; +		ao_cur_task->alarm = 0;  		return 1;  	}  	return 0; @@ -157,6 +158,16 @@ ao_clear_alarm(void)  	ao_cur_task->alarm = 0;  } +static __xdata uint8_t ao_forever; + +void +ao_delay(uint16_t ticks) +{ +	ao_alarm(ticks); +	ao_sleep(&ao_forever); +	ao_clear_alarm(); +} +  void  ao_exit(void)  { | 
