diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-09-04 02:58:38 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-09-04 02:58:38 +0000 |
commit | 9381dc335de041c194d3f9c01d197d915e3b3e06 (patch) | |
tree | ceb2633f270ffa4abcb9efb66958d411a027d18d /ace/Timer_Wheel_T.cpp | |
parent | 212f5d8199c40b1d3eb5b0767914fc71bf254d29 (diff) | |
download | ATCD-9381dc335de041c194d3f9c01d197d915e3b3e06.tar.gz |
ChangeLogTag:Wed Sep 3 21:38:18 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
Diffstat (limited to 'ace/Timer_Wheel_T.cpp')
-rw-r--r-- | ace/Timer_Wheel_T.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/ace/Timer_Wheel_T.cpp b/ace/Timer_Wheel_T.cpp index 86dee8a4356..c90eeb2fd7e 100644 --- a/ace/Timer_Wheel_T.cpp +++ b/ace/Timer_Wheel_T.cpp @@ -106,8 +106,7 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, LOCK>::ACE_Timer_Wheel_T (size_t wheelsize, : INHERITED (upcall_functor, freelist), wheel_size_ (wheelsize), resolution_ (resolution), - earliest_pos_ (0), - iterator_ (*this) + earliest_pos_ (0) { ACE_TRACE ("ACE_Timer_Wheel_T::ACE_Timer_Wheel_T"); size_t i; @@ -129,6 +128,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, LOCK>::ACE_Timer_Wheel_T (size_t wheelsize, // Do the preallocation this->free_list_->resize (prealloc); + + iterator_ = new WHEEL_ITERATOR(*this); } template <class TYPE, class FUNCTOR, class LOCK> @@ -137,8 +138,7 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, LOCK>::ACE_Timer_Wheel_T (FUNCTOR *upcall_funct : INHERITED (upcall_functor, freelist), wheel_size_ (ACE_DEFAULT_TIMER_WHEEL_SIZE), resolution_ (ACE_DEFAULT_TIMER_WHEEL_RESOLUTION), - earliest_pos_ (0), - iterator_ (*this) + earliest_pos_ (0) { ACE_TRACE ("ACE_Timer_Wheel_T::ACE_Timer_Wheel_T"); size_t i; @@ -156,6 +156,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, LOCK>::ACE_Timer_Wheel_T (FUNCTOR *upcall_funct tempnode->set_prev (tempnode); this->wheel_[i] = tempnode; } + + iterator_ = new WHEEL_ITERATOR(*this); } // Destructor just cleans up its memory @@ -165,6 +167,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, LOCK>::~ACE_Timer_Wheel_T (void) { ACE_TRACE ("ACE_Timer_Wheel_T::~ACE_Timer_Wheel_T"); + delete iterator_; + for (size_t i = 0; i < this->wheel_size_; i++) { // delete nodes until only the dummy node is left @@ -482,7 +486,7 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, LOCK>::reschedule (ACE_Timer_Node_T<TYPE> *expi template <class TYPE, class FUNCTOR, class LOCK> ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, LOCK> & ACE_Timer_Wheel_T<TYPE, FUNCTOR, LOCK>::iter (void) { - return this->iterator_; + return *this->iterator_; } // Dummy version of expire to get rid of warnings in Sun CC 4.2 |