master/master.c
changeset 1031 000593b576dd
parent 1029 61ffe5f22306
child 1040 d2527675cdd5
--- a/master/master.c	Wed Jun 18 13:44:43 2008 +0000
+++ b/master/master.c	Wed Jun 18 13:53:31 2008 +0000
@@ -818,24 +818,22 @@
         cycles_start = get_cycles();
         ec_datagram_output_stats(&master->fsm_datagram);
 
-        if (ec_fsm_master_running(&master->fsm)) { // datagram on the way
-            // receive
-            spin_lock_bh(&master->internal_lock);
-            ecrt_master_receive(master);
-            spin_unlock_bh(&master->internal_lock);
-
-            if (master->fsm_datagram.state == EC_DATAGRAM_SENT)
-                goto schedule;
-        }
+        // receive
+        spin_lock_bh(&master->internal_lock);
+        ecrt_master_receive(master);
+        spin_unlock_bh(&master->internal_lock);
+
+        if (master->fsm_datagram.state == EC_DATAGRAM_SENT)
+            goto schedule;
 
         // execute master state machine
-        if (ec_fsm_master_exec(&master->fsm)) { // datagram ready for sending
-            // queue and send
-            spin_lock_bh(&master->internal_lock);
-            ec_master_queue_datagram(master, &master->fsm_datagram);
-            ecrt_master_send(master);
-            spin_unlock_bh(&master->internal_lock);
-        }
+        ec_fsm_master_exec(&master->fsm);
+
+        // queue and send
+        spin_lock_bh(&master->internal_lock);
+        ec_master_queue_datagram(master, &master->fsm_datagram);
+        ecrt_master_send(master);
+        spin_unlock_bh(&master->internal_lock);
         
         cycles_end = get_cycles();
         master->idle_cycle_times[master->idle_cycle_time_pos]
@@ -883,10 +881,10 @@
         ec_master_output_stats(master);
 
         // execute master state machine
-        if (ec_fsm_master_exec(&master->fsm)) {
-            // inject datagram
-            master->injection_seq_fsm++;
-        }
+        ec_fsm_master_exec(&master->fsm);
+
+        // inject datagram
+        master->injection_seq_fsm++;
 
         cycles_end = get_cycles();
         master->idle_cycle_times[master->idle_cycle_time_pos]