--- 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;