summaryrefslogtreecommitdiff
path: root/ace/Timer_Wheel_T.cpp
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-04 02:58:38 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-04 02:58:38 +0000
commit9381dc335de041c194d3f9c01d197d915e3b3e06 (patch)
treeceb2633f270ffa4abcb9efb66958d411a027d18d /ace/Timer_Wheel_T.cpp
parent212f5d8199c40b1d3eb5b0767914fc71bf254d29 (diff)
downloadATCD-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.cpp14
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