Alain Picard <[email protected]>
writes:
OK - here is a MINIMAL patch. It applies with
patch -p1 < /tmp/patch.
Hope this one works!
--ap
diff -rN -wu old-elephant-1.0-work/src/elephant/controller.lisp new-elephant-1.0-work/src/elephant/controller.lisp
--- old-elephant-1.0-work/src/elephant/controller.lisp 2009-10-17 23:27:29.000000000 +1100
+++ new-elephant-1.0-work/src/elephant/controller.lisp 2009-10-17 23:27:29.000000000 +1100
@@ -111,13 +111,15 @@
(signal-controller-lost-error instance)
(reopen-controller ()
:report "Re-open the store controller"
- (open-controller
- (get-controller (db-spec instance)))))))
+ (let ((controller (get-controller (db-spec instance))))
+ (apply #'open-controller controller (controller-opening-args controller)))))))
;; If it's valid and open
((and con (connection-is-indeed-open con))
con)
;; If the controller object exists but is closed, reopen
- (t (open-controller con)))))
+ (t
+ (let ((controller (get-controller (db-spec instance))))
+ (apply #'open-controller controller (controller-opening-args controller)))))))
(defun get-controller (spec)
"This is used by open-store to fetch or open a controller.
@@ -184,6 +186,11 @@
:documentation "Data store initialization functions are
expected to initialize :spec on the call to
make-instance")
+ (opening-args :type list
+ :accessor controller-opening-args
+ :initarg :controller-opening-args
+ :documentation "List of keyword arguments passed to the
+ OPEN-STORE function when opening (or re-opening) a controller.")
(db-version :type fixnum
:accessor controller-database-version
:initform 100)
@@ -785,7 +792,8 @@
;; Ensure that parameters are set
(initialize-user-parameters)
(let ((controller (get-controller spec)))
- (apply #'open-controller controller args)
+ (setf (controller-opening-args controller) args)
+ (apply #'open-controller controller (controller-opening-args controller))
(if *store-controller*
(progn
;; (warn "Store controller already set so was not updated") ;; this was annoying me
diff -rN -wu old-elephant-1.0-work/src/elephant/gc.lisp new-elephant-1.0-work/src/elephant/gc.lisp
--- old-elephant-1.0-work/src/elephant/gc.lisp 2009-10-17 23:27:29.000000000 +1100
+++ new-elephant-1.0-work/src/elephant/gc.lisp 2009-10-17 23:27:29.000000000 +1100
@@ -362,7 +362,7 @@
"Ignore *store-controller*"
(initialize-user-parameters)
(let ((controller (get-controller spec)))
- (open-controller controller)
+ (apply #'open-controller controller (controller-opening-args controller))
controller))
(defgeneric temp-spec (type spec)
--
Please read about why Top Posting
is evil at: http://en.wikipedia.org/wiki/Top-posting
and http://www.dickalba.demon.co.uk/usenet/guide/faq_topp.html
Please read about why HTML in email is evil at:
http://www.birdhouse.org/etc/evilmail.html
_______________________________________________
elephant-devel site list
[email protected]
http://common-lisp.net/mailman/listinfo/elephant-devel