diff -r a4d3fffdaed7 -r c68995623e94 master/master.c --- a/master/master.c Mon Mar 12 11:02:05 2007 +0000 +++ b/master/master.c Mon Mar 12 12:11:43 2007 +0000 @@ -836,8 +836,13 @@ master->idle_cycle_time_pos++; master->idle_cycle_time_pos %= HZ; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1); + if (ec_fsm_master_idle(&master->fsm)) { + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(1); + } + else { + schedule(); + } } master->thread_id = 0; @@ -883,8 +888,13 @@ master->idle_cycle_time_pos %= HZ; schedule: - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1); + if (ec_fsm_master_idle(&master->fsm)) { + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(1); + } + else { + schedule(); + } } master->thread_id = 0;