Changeset 1857

Show
Ignore:
Timestamp:
23/09/2007 10:19:04 (16 months ago)
Author:
chris
Message:

Make detailed timer debugging work on Windows as well.

Add a couple of macros to clean up the code.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • box/chris/general/lib/common/Timer.cpp

    r1485 r1857  
    130130} 
    131131 
     132#define FORMAT_BOX_TIME(t) \ 
     133        (BoxTimeToSeconds(t)) << "." << \ 
     134        (BoxTimeToMicroSeconds(t) % MICRO_SEC_IN_SEC) 
     135 
     136#define FORMAT_MICROSECONDS(t) \ 
     137        (int)(t / 1000000) << "." << \ 
     138        (int)(t % 1000000) 
     139 
    132140// -------------------------------------------------------------------------- 
    133141// 
     
    176184                        if (timeToExpiry <= 0) 
    177185                        { 
    178                                 BOX_TRACE((int)(timeNow / 1000000) << "." << 
    179                                         (int)(timeNow % 1000000) << 
     186                                BOX_TRACE(FORMAT_MICROSECONDS(timeNow) << 
    180187                                        ": timer " << *i << " has expired, " 
    181188                                        "triggering it"); 
     
    187194                        else 
    188195                        { 
    189                                 BOX_TRACE((int)(timeNow / 1000000) << "." << 
    190                                         (int)(timeNow % 1000000) << 
     196                                BOX_TRACE(FORMAT_MICROSECONDS(timeNow) << 
    191197                                        ": timer " << *i << " has not " 
    192198                                        "expired, triggering in " << 
    193                                         (int)(timeToExpiry / 1000000) << "." << 
    194                                         (int)(timeToExpiry % 1000000) << 
     199                                        FORMAT_MICROSECONDS(timeToExpiry) << 
    195200                                        " seconds"); 
    196201                        } 
     
    258263  mExpired(false) 
    259264{ 
    260         #if !defined NDEBUG && !defined WIN32 
    261         struct timeval tv; 
    262         gettimeofday(&tv, NULL); 
     265        #ifndef NDEBUG 
     266        box_time_t timeNow = GetCurrentBoxTime(); 
    263267        if (timeoutSecs == 0) 
    264268        { 
    265                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     269                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    266270                        ": timer " << this << " initialised for " << 
    267271                        timeoutSecs << " secs, will not fire"); 
     
    269273        else 
    270274        { 
    271                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     275                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    272276                        ": timer " << this << " initialised for " << 
    273277                        timeoutSecs << " secs, to fire at " << 
    274                         (int)(mExpires / 1000000) << "." << 
    275                         (int)(mExpires % 1000000)); 
     278                        FORMAT_MICROSECONDS(mExpires)); 
    276279        } 
    277280        #endif 
     
    289292Timer::~Timer() 
    290293{ 
    291         #if !defined NDEBUG && !defined WIN32 
    292         struct timeval tv; 
    293         gettimeofday(&tv, NULL); 
    294         BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     294        #ifndef NDEBUG 
     295        box_time_t timeNow = GetCurrentBoxTime(); 
     296        BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    295297                ": timer " << this << " destroyed"); 
    296298        #endif 
     
    303305  mExpired(rToCopy.mExpired) 
    304306{ 
    305         #if !defined NDEBUG && !defined WIN32 
    306         struct timeval tv; 
    307         gettimeofday(&tv, NULL); 
     307        #ifndef NDEBUG 
     308        box_time_t timeNow = GetCurrentBoxTime(); 
    308309        if (mExpired) 
    309310        { 
    310                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     311                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    311312                        ": timer " << this << " initialised from timer " << 
    312313                        &rToCopy << ", already expired, will not fire"); 
     
    314315        else if (mExpires == 0) 
    315316        { 
    316                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     317                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    317318                        ": timer " << this << " initialised from timer " << 
    318319                        &rToCopy << ", no expiry, will not fire"); 
     
    320321        else 
    321322        { 
    322                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     323                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    323324                        ": timer " << this << " initialised from timer " << 
    324325                        &rToCopy << " to fire at " << 
     
    336337Timer& Timer::operator=(const Timer& rToCopy) 
    337338{ 
    338         #if !defined NDEBUG && !defined WIN32 
    339         struct timeval tv; 
    340         gettimeofday(&tv, NULL); 
     339        #ifndef NDEBUG 
     340        box_time_t timeNow = GetCurrentBoxTime(); 
    341341        if (rToCopy.mExpired) 
    342342        { 
    343                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     343                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    344344                        ": timer " << this << " initialised from timer " << 
    345345                        &rToCopy << ", already expired, will not fire"); 
     
    347347        else if (rToCopy.mExpires == 0) 
    348348        { 
    349                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     349                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    350350                        ": timer " << this << " initialised from timer " << 
    351351                        &rToCopy << ", no expiry, will not fire"); 
     
    353353        else 
    354354        { 
    355                 BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
     355                BOX_TRACE(FORMAT_BOX_TIME(timeNow) << 
    356356                        ": timer " << this << " initialised from timer " << 
    357357                        &rToCopy << " to fire at " << 
     
    373373void Timer::OnExpire() 
    374374{ 
    375         #if !defined NDEBUG && !defined WIN32 
    376         struct timeval tv; 
    377         gettimeofday(&tv, NULL); 
    378         BOX_TRACE(tv.tv_sec << "." << tv.tv_usec << 
    379                 ": timer " << this << " fired"); 
     375        #ifndef NDEBUG 
     376        box_time_t timeNow = GetCurrentBoxTime(); 
     377        BOX_TRACE(FORMAT_BOX_TIME(timeNow) << ": timer " << this << " fired"); 
    380378        #endif 
    381379