]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Bugfix for a bug in the timer system that was first reported here:
authorjanhauer <janhauer>
Wed, 5 Mar 2008 18:40:17 +0000 (18:40 +0000)
committerjanhauer <janhauer>
Wed, 5 Mar 2008 18:40:17 +0000 (18:40 +0000)
http://sourceforge.net/tracker/index.php?func=detail&aid=1572439&group_id=28656&atid=393934

It showed up when you used two Timer interfaces (e.g. provided by two TimerMilliC() instances) and Timer2.startOneShot() was called withinTimer1.fired() and in addition (1) Timer2 had a higher internal interface ID (unique(UQ_TIMER_MILLI)) than Timer1 and (2) there was some (small) amount of time elapsed before the Timer2.startOneShot() was called in the fired eventhandler. Then, Timer2.fired() was signalled immediately independent of the "dt" parameter in startOneShot(uint32_t dt). This has been fixed now.

For more information see:
http://mail.millennium.berkeley.edu/pipermail/tinyos-devel/2008-March/002573.html

tos/lib/timer/VirtualizeTimerC.nc

index 3c26c37119418a87546a36ea7bcc6cb96848a332..4aa7c222ccf3b1c6bd0f88276ee0328aa9a2ff91 100644 (file)
@@ -79,6 +79,7 @@ implementation
                  timer->t0 += timer->dt;
 
                signal Timer.fired[num]();
+    break;
              }
          }
       }