diff --git a/core/sip/wheeltimer.cpp b/core/sip/wheeltimer.cpp index 95ad2f9c..a8ef4202 100644 --- a/core/sip/wheeltimer.cpp +++ b/core/sip/wheeltimer.cpp @@ -42,18 +42,6 @@ timer::~timer() // DBG("timer::~timer(this=%p)\n",this); } -_wheeltimer::_wheeltimer() - : wall_clock(0) -{ - struct timeval now; - gettimeofday(&now,NULL); - unix_clock.set(now.tv_sec); -} - -_wheeltimer::~_wheeltimer() -{ -} - void _wheeltimer::insert_timer(timer* t) { //add new timer to user request list @@ -103,9 +91,6 @@ void _wheeltimer::run() //printf("missed one tick\n"); //} - gettimeofday(&now,NULL); - unix_clock.set(now.tv_sec); - turn_wheel(); timeradd(&tick,&next_tick,&next_tick); } diff --git a/core/sip/wheeltimer.h b/core/sip/wheeltimer.h index 0b236e9c..4d6d04cf 100644 --- a/core/sip/wheeltimer.h +++ b/core/sip/wheeltimer.h @@ -32,6 +32,7 @@ #include "../AmThread.h" #include +#include #include #include "atomic_types.h" @@ -113,17 +114,19 @@ protected: void run(); void on_stop(){} - _wheeltimer(); - ~_wheeltimer(); + _wheeltimer() + : wall_clock(0) {} public: //clock reference volatile u_int32_t wall_clock; // 32 bits -#ifdef __LP64__ - atomic_int64 unix_clock; // 64 bits -#else - atomic_int unix_clock; // 32 bits -#endif + struct _uc { + int64_t get() + { + return time(NULL); + } + }; + _uc unix_clock; void insert_timer(timer* t); void remove_timer(timer* t);