diff --git a/MAC/GCF/TM/src/Timer/GTM_Timer.cc b/MAC/GCF/TM/src/Timer/GTM_Timer.cc index 89f009dd2cbb0569a2a8d4c7b154d50ba0d49d43..780d8b11778e90348002df4ec62c2f7309b51e09 100644 --- a/MAC/GCF/TM/src/Timer/GTM_Timer.cc +++ b/MAC/GCF/TM/src/Timer/GTM_Timer.cc @@ -1,3 +1,4 @@ + //# GTM_Timer.cc: one line description //# //# Copyright (C) 2002-2003 @@ -51,9 +52,9 @@ GTMTimer::GTMTimer(GCFRawPort& port, void GTMTimer::decreaseTime() { - unsigned long uSec = getElapsedTime(); + long uSec = getElapsedTime(); - if (_timeLeft > uSec) + if ((long)_timeLeft > uSec) { _timeLeft -= uSec; } @@ -76,9 +77,11 @@ void GTMTimer::decreaseTime() if (_intervalTime < timeoverflow) { LOG_ERROR(formatString( - "Timerinterval %fsec of timer %d is to small for performance reasons.", + "Timerinterval %fsec of timer %d is to small for performance reasons (tdelta: %ld, tleft: %lu).", ((double) _intervalTime) / 1000000.0, - _id)); + _id, + uSec, + _timeLeft)); do { timeoverflow -= _intervalTime; @@ -99,19 +102,19 @@ void GTMTimer::saveTime() gettimeofday(&_savedTime, &timeZone); } -unsigned long GTMTimer::getElapsedTime() +long GTMTimer::getElapsedTime() { timeval oldTime(_savedTime); - unsigned long uSecDiff(0); + long uSecDiff(0); saveTime(); - uSecDiff = ((unsigned long) (_savedTime.tv_usec) + - (unsigned long) (_savedTime.tv_sec) * 1000000) - - ((unsigned long) (oldTime.tv_usec) + - (unsigned long) (oldTime.tv_sec) * 1000000); + uSecDiff = ((unsigned long long) (_savedTime.tv_usec) + + (unsigned long long) (_savedTime.tv_sec) * 1000000) - + ((unsigned long long) (oldTime.tv_usec) + + (unsigned long long) (oldTime.tv_sec) * 1000000); - return uSecDiff; + return uSecDiff; } } // namespace TM } // namespace GCF diff --git a/MAC/GCF/TM/src/Timer/GTM_Timer.h b/MAC/GCF/TM/src/Timer/GTM_Timer.h index 6d8a0c0b71970febe53615188bce22c17e4b8b65..0b6726e487d8e3f73161a706149e7c8052d87eaf 100644 --- a/MAC/GCF/TM/src/Timer/GTM_Timer.h +++ b/MAC/GCF/TM/src/Timer/GTM_Timer.h @@ -67,7 +67,7 @@ class GTMTimer private: // helper methods void saveTime (); - unsigned long getElapsedTime(); + long getElapsedTime(); private: // attributes GCFRawPort& _port;