]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/timer/VirtualizeAlarmC.nc
Merge TinyOS 2.1.1 into master.
[tinyos-2.x.git] / tos / lib / timer / VirtualizeAlarmC.nc
index d558d99a237a9940160298a680ab5c138e4c3d04..07180360d4ef584751a9d0697403f217b02f969a 100644 (file)
@@ -132,7 +132,10 @@ implementation
 
     for( id=0; id<NUM_ALARMS; id++ ) {
       if( m.isset[id] ) {
-        size_type elapsed = call AlarmFrom.getNow() - m.alarm[id].t0;
+        //size_type elapsed = call AlarmFrom.getNow() - m.alarm[id].t0;
+        //if( m.alarm[id].dt <= elapsed ) {
+        size_type t0 = m.alarm[id].t0;
+        size_type elapsed = call AlarmFrom.getNow() - t0;
         if( m.alarm[id].dt <= elapsed ) {
           m.isset[id] = FALSE;
           signal Alarm.fired[id]();
@@ -163,7 +166,7 @@ implementation
 
   // extended interface
   async command bool Alarm.isRunning[uint8_t id]() {
-    return m.isset[id];
+    atomic return m.isset[id];
   }
 
   async command void Alarm.startAt[uint8_t id]( size_type t0, size_type dt ) {