Hello, I have a PyGTK application where the user is able to click on a button, then a new dialog pops up with a treeview and the program fills this view with data from a shelve. Everything works, the data is being added to the treeview. The only problem is, that when I close the dialog, it doesn't free the memory. So when I click the button again, the same amount of memory is added being used. Then close the window, click again, again the same amount of memory, and so on...
Now it only takes about 5 to 8 mb, but this shouldn't be.
I do call the shelve.close(), but that doesn't do it apparently. Do I need to do something when I close my window?

Here are parts of the code:

# Result window => Called when button is clicked
import Results

class ResultWindow:
   def __init__(self):
       # Build the dialog and the treeview...

       self.get_results()

   def get_results(self):
       self.liststore.clear()

       for person in self.persons:
           dics = Results.read_result(person)
           if not dics:
               continue
           for dic in dics:
               date = dic['date']
               point = dic['point']
               place = dic['place']
               out = dic['out']

               self.liststore.append([date, point, place, out])

# Results file
import shelve

def read_result(person):
   results = []

   s = shelve.open(RESULTFILE)
   try:
       results = s[person]
   except KeyError:
#        print "No results for this person"
       pass
   finally:
       s.close()

   return results
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to