changeset 1099:9ab0a182923a

* src/common/clock.cxx (Cyg_Counter::tick): In unsorted list case: moved saving of next node details to before re-insertion of alarms with intervals. The call to add_alarm() can make enough of a difference to the list to need to force a rescan.
author nickg
date Thu, 10 Jul 2003 17:41:07 +0000
parents 21a4bd716ae0
children 353800bc5758
files packages/kernel/current/ChangeLog packages/kernel/current/src/common/clock.cxx
diffstat 2 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/packages/kernel/current/ChangeLog
+++ b/packages/kernel/current/ChangeLog
@@ -1,3 +1,10 @@
+2003-07-10  Nick Garnett  <nickg@balti.calivar.com>
+
+	* src/common/clock.cxx (Cyg_Counter::tick): In unsorted list case:
+	moved saving of next node details to before re-insertion of alarms
+	with intervals. The call to add_alarm() can make enough of a
+	difference to the list to need to force a rescan.
+
 2003-07-06  Bart Veer  <bartv@ecoscentric.com>
 
 	* include/test/stackmon.h (cyg_test_size_a_stack):
--- a/packages/kernel/current/src/common/clock.cxx
+++ b/packages/kernel/current/src/common/clock.cxx
@@ -235,6 +235,12 @@ void Cyg_Counter::tick( cyg_uint32 ticks
                 
                 alarm_list_ptr->remove(alarm);
 
+                // Save some details of the list state so we can
+                // detect if it has changed.
+                next_next = next->get_next();
+                next_prev = next->get_prev();
+                head = alarm_list_ptr->get_head();
+                
                 if( alarm->interval != 0 )
                 {
                     // The alarm has a retrigger interval.
@@ -245,12 +251,6 @@ void Cyg_Counter::tick( cyg_uint32 ticks
                 }
                 else alarm->enabled = false;
 
-                // Save some details of the list state so we can
-                // detect if it has changed.
-                next_next = next->get_next();
-                next_prev = next->get_prev();
-                head = alarm_list_ptr->get_head();
-                
                 CYG_INSTRUMENT_ALARM( CALL, this, alarm );
                 
                 // Call alarm function