uint8_t
ao_sleep(__xdata void *wchan)
{
- ao_arch_critical(
- ao_cur_task->wchan = wchan;
- );
+ ao_cur_task->wchan = wchan;
ao_yield();
- ao_cur_task->alarm = 0;
if (ao_cur_task->wchan) {
ao_cur_task->wchan = NULL;
return 1;
ao_cur_task->alarm = 1;
}
+void
+ao_clear_alarm(void)
+{
+ ao_cur_task->alarm = 0;
+}
+
void
ao_exit(void)
{
task = ao_tasks[i];
printf("%12s: wchan %04x\n",
task->name,
- (int16_t) task->wchan);
+ (int) task->wchan);
}
}