Bugs item #1933666, was opened at 2008-04-03 15:06
Message generated for change (Comment added) made by osas
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1933666&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: core
Group: ver devel
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Ovidiu Sas (osas)
Assigned to: Nobody/Anonymous (nobody)
Summary: leftover timer structures during shutdown

Initial Comment:
Whenever a timer is set, the allocated memory is not released on shutdown:
0. N  address=0x81abe2c frag=0x81abe14 size=28 used=1 
      alloc'd from timer.c: new_sr_timer(151) 
  start check=f0f0f0f0, end check= c0c0c0c0, abcdefed 
...
6. N  address=0x81abfd0 frag=0x81abfb8 size=28 used=1 
      alloc'd from timer.c: new_sr_timer(151) 
  start check=f0f0f0f0, end check= c0c0c0c0, abcdefed

----------------------------------------------------------------------

>Comment By: Ovidiu Sas (osas)
Date: 2008-04-03 15:49

Message:
Logged In: YES 
user_id=1395524
Originator: YES

The following patch seems to cure the issue:
Index: timer.c
===================================================================
--- timer.c     (revision 3974)
+++ timer.c     (working copy)
@@ -130,6 +130,33 @@
 
 void destroy_timer(void)
 {
+       struct sr_timer_process *tpl = timer_proc_list;
+       struct sr_timer_process *next_tpl;
+       struct sr_timer *t;
+       struct sr_timer *next_t;
+
+       while (tpl) {
+               next_tpl = tpl->next;
+
+               t = tpl->timer_list;
+               while (t) {
+                       next_t = t->next;
+                       pkg_free(t);
+                       t = next_t;
+               }
+
+               t = tpl->utimer_list;
+               while (t) {
+                       next_t = t->next;
+                       pkg_free(t);
+                       t = next_t;
+               }
+
+               pkg_free(tpl);
+               tpl = next_tpl;
+       }
+       timer_proc_list = NULL;
+
        if (jiffies){
 #ifdef SHM_MEM
                shm_free(jiffies); jiffies=0;


----------------------------------------------------------------------

Comment By: Ovidiu Sas (osas)
Date: 2008-04-03 15:11

Message:
Logged In: YES 
user_id=1395524
Originator: YES

Same for the timer_process_list:
251. N  address=0x81b436c frag=0x81b4354 size=16 used=1 
        alloc'd from timer.c: new_timer_process_list(70) 
    start check=f0f0f0f0, end check= c0c0c0c0, abcdefed

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1933666&group_id=139143

_______________________________________________
Devel mailing list
[email protected]
http://lists.openser.org/cgi-bin/mailman/listinfo/devel

Reply via email to