[elephant-cvs] CVS update: elephant/src/controller.lisp

blee at common-lisp.net blee at common-lisp.net
Sat Sep 4 08:28:45 UTC 2004


Update of /project/elephant/cvsroot/elephant/src
In directory common-lisp.net:/tmp/cvs-serv14824/src

Modified Files:
	controller.lisp 
Log Message:
incorporated Rafal Strzalinski's fix (don't close
environments / db's twice)

Date: Sat Sep  4 10:28:45 2004
Author: blee

Index: elephant/src/controller.lisp
diff -u elephant/src/controller.lisp:1.8 elephant/src/controller.lisp:1.9
--- elephant/src/controller.lisp:1.8	Sat Sep  4 10:16:55 2004
+++ elephant/src/controller.lisp	Sat Sep  4 10:28:44 2004
@@ -146,16 +146,17 @@
 (defmethod close-controller ((sc store-controller))
   "Close the db handles and environment.  Tries to wipe out
 references to the db handles."
-  ; no root
-  (setf (slot-value sc 'root) nil)
-  ; clean instance cache
-  (setf (instance-cache sc) (make-cache-table :test 'eql))
-  ; close environment
-  (db-close (controller-db sc))
-  (setf (controller-db sc) nil)
-  (db-env-close (controller-environment sc))
-  (setf (controller-environment sc) nil)
-  nil)
+  (when (slot-value sc 'root)
+    ;; no root
+    (setf (slot-value sc 'root) nil)
+    ;; clean instance cache
+    (setf (instance-cache sc) (make-cache-table :test 'eql))
+    ;; close environment
+    (db-close (controller-db sc))
+    (setf (controller-db sc) nil)
+    (db-env-close (controller-environment sc))
+    (setf (controller-environment sc) nil)
+    nil))
 
 (defmacro with-open-controller ((&optional (sc '*store-controller*))
 				&body body)





More information about the Elephant-cvs mailing list