diff --git a/pisi/installdb.py b/pisi/installdb.py index 08823970..42430f4e 100644 --- a/pisi/installdb.py +++ b/pisi/installdb.py @@ -182,4 +182,5 @@ def finalize(): global db if db: db.close() + db = None diff --git a/pisi/packagedb.py b/pisi/packagedb.py index 6ca9a48d..fd6851f7 100644 --- a/pisi/packagedb.py +++ b/pisi/packagedb.py @@ -143,17 +143,28 @@ def remove_package(name): thirdparty_packagedb = inst_packagedb = None -def init_db(): - if not pisi.packagedb.thirdparty_packagedb: - pisi.packagedb.thirdparty_packagedb = PackageDB('thirdparty') +def init_db(): + global thirdparty_packagedb + global inst_packagedb + + if not thirdparty_packagedb: + thirdparty_packagedb = PackageDB('thirdparty') if not pisi.packagedb.inst_packagedb: - pisi.packagedb.inst_packagedb = PackageDB('installed') + inst_packagedb = PackageDB('installed') def finalize_db(): - if pisi.packagedb.thirdparty_packagedb: - pisi.packagedb.thirdparty_packagedb.close() - if pisi.packagedb.inst_packagedb: - pisi.packagedb.inst_packagedb.close() - if pisi.packagedb.packagedbs: - del pisi.packagedb.packagedbs + global thirdparty_packagedb + global inst_packagedb + global packagedbs + + if thirdparty_packagedb: + thirdparty_packagedb.close() + thirdparty_packagedb = None + + if inst_packagedb: + inst_packagedb.close() + inst_packagedb = None + + if packagedbs: + del packagedbs diff --git a/pisi/repodb.py b/pisi/repodb.py index 9f8d0207..4801ad55 100644 --- a/pisi/repodb.py +++ b/pisi/repodb.py @@ -103,16 +103,20 @@ class RepoDB(object): db = None def init(): - if pisi.repodb.db: - return pisi.repodb.db + global db - pisi.repodb.db = RepoDB() - pisi.repodb.db.init_dbs() - return pisi.repodb.db + if db: + return db + + db = RepoDB() + db.init_dbs() + return db def finalize(): global db - if pisi.repodb.db: + + if db: db.close() + db = None