[yum-cvs] yum/yum __init__.py, 1.323, 1.324 repos.py, 1.104, 1.105 sqlitesack.py, 1.96, 1.97 yumRepo.py, 1.43, 1.44

Jeremy Katz katzj at linux.duke.edu
Wed Apr 25 18:28:34 UTC 2007


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv12950/yum

Modified Files:
	__init__.py repos.py sqlitesack.py yumRepo.py 
Log Message:
add close methods so that sqlite dbs get closed (Mark McLoughlin, rh#236409)


Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.323
retrieving revision 1.324
diff -u -r1.323 -r1.324
--- __init__.py	25 Apr 2007 18:18:24 -0000	1.323
+++ __init__.py	25 Apr 2007 18:28:31 -0000	1.324
@@ -79,7 +79,13 @@
         self.localPackages = [] # for local package handling
 
         self.mediagrabber = None
-    
+
+    def __del__(self):
+        self.close()
+
+    def close(self):
+        if self._repos:
+            self._repos.close()
 
     def _transactionDataFactory(self):
         """Factory method returning TransactionData object"""

Index: repos.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/repos.py,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -r1.104 -r1.105
--- repos.py	22 Jan 2007 04:33:22 -0000	1.104
+++ repos.py	25 Apr 2007 18:28:31 -0000	1.105
@@ -37,7 +37,13 @@
         
     def __str__(self):
         return str(self.repos.keys())
-    
+
+    def __del__(self):
+        self.close()
+
+    def close(self):
+        for repo in self.repos.values():
+            repo.close()
 
     def add(self, repoobj):
         if self.repos.has_key(repoobj.id):
@@ -222,6 +228,12 @@
     def __hash__(self):
         return hash(self.id)
         
+    def __del__(self):
+        self.close()
+
+    def close(self):
+        pass
+
     def setAttribute(self, key, value):
         """sets a generic attribute of this repository"""
         setattr(self, key, value)

Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -r1.96 -r1.97
--- sqlitesack.py	24 Apr 2007 21:13:06 -0000	1.96
+++ sqlitesack.py	25 Apr 2007 18:28:31 -0000	1.97
@@ -211,6 +211,13 @@
             executeSQL(cur, "select count(pkgId) from packages")
             return cur.fetchone()[0]
 
+    def close(self):
+        for dataobj in self.primarydb.values() + \
+                       self.filelistsdb.values() + \
+                       self.otherdb.values():
+            dataobj.close()
+        yumRepo.YumPackageSack.close(self)
+
     def buildIndexes(self):
         # We don't need these
         return

Index: yumRepo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/yumRepo.py,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- yumRepo.py	19 Apr 2007 23:10:32 -0000	1.43
+++ yumRepo.py	25 Apr 2007 18:28:31 -0000	1.44
@@ -45,6 +45,12 @@
         self.pc = packageClass
         self.added = {}
 
+    def __del__(self):
+        self.close()
+
+    def close(self):
+        pass
+
     def addDict(self, repo, datatype, dataobj, callback=None):
         if self.added.has_key(repo):
             if datatype in self.added[repo]:
@@ -241,6 +247,10 @@
         self._grabfunc = None
         self._grab = None
 
+    def close(self):
+        self.sack.close()
+        Repository.close(self)
+
     def __getProxyDict(self):
         self.doProxyDict()
         if self._proxy_dict:




More information about the Yum-cvs-commits mailing list