[bknr-cvs] ksprotte changed trunk/projects/bos/m2/initialization-subsystem.lisp

BKNR Commits bknr at bknr.net
Mon Jul 21 15:25:37 UTC 2008


Revision: 3538
Author: ksprotte
URL: http://bknr.net/trac/changeset/3538

call invoke-store-transient-init-functions also in snapshot-subsystem
U   trunk/projects/bos/m2/initialization-subsystem.lisp

Modified: trunk/projects/bos/m2/initialization-subsystem.lisp
===================================================================
--- trunk/projects/bos/m2/initialization-subsystem.lisp	2008-07-21 15:14:13 UTC (rev 3537)
+++ trunk/projects/bos/m2/initialization-subsystem.lisp	2008-07-21 15:25:37 UTC (rev 3538)
@@ -1,14 +1,14 @@
 (in-package :bos.m2)
 
-;;; store-transient-init-functions
+;;; transient-init-functions
 ;;;
 ;;; Allows for registering transient init functions that
 ;;; will be called after each restore of m2-store
 
-(defvar *store-transient-init-functions* nil)
-(defvar *store-transient-init-constraints* nil)
+(defvar *transient-init-functions* nil)
+(defvar *transient-init-constraints* nil)
 
-(defun register-store-transient-init-function (init-function &rest dependencies)
+(defun register-transient-init-function (init-function &rest dependencies)
   "Register INIT-FUNCTION (a function-name) to be called after
 each restore of m2-store.  Optionally, names of other
 init-functions can be specified as DEPENDENCIES. The specified
@@ -27,31 +27,31 @@
     (check-type init-function symbol)
     (dolist (dependency dependencies)
       (check-type dependency symbol))    
-    (let (new-store-transient-init-functions
-          new-store-transient-init-constraints)
+    (let (new-transient-init-functions
+          new-transient-init-constraints)
       (let ((constraints (build-constraints))
             ;; dont know yet whether we have a circular dependency - so
             ;; we want to be able to abort without changes
-            (*store-transient-init-functions* *store-transient-init-functions*)
-            (*store-transient-init-constraints* *store-transient-init-constraints*))      
-        (pushnew init-function *store-transient-init-functions*)
+            (*transient-init-functions* *transient-init-functions*)
+            (*transient-init-constraints* *transient-init-constraints*))      
+        (pushnew init-function *transient-init-functions*)
         (dolist (dependency dependencies)
-          (pushnew dependency *store-transient-init-functions*))
+          (pushnew dependency *transient-init-functions*))
         (dolist (constraint constraints)
-          (pushnew constraint *store-transient-init-constraints* :test #'equal))
-        (setq new-store-transient-init-functions
-              (topological-sort *store-transient-init-functions*
-                                *store-transient-init-constraints*
+          (pushnew constraint *transient-init-constraints* :test #'equal))
+        (setq new-transient-init-functions
+              (topological-sort *transient-init-functions*
+                                *transient-init-constraints*
                                 #'ignorant-tie-breaker)
-              new-store-transient-init-constraints
-              *store-transient-init-constraints*))
-      (setq *store-transient-init-functions*
-            new-store-transient-init-functions
-            *store-transient-init-constraints*
-            new-store-transient-init-constraints))))
+              new-transient-init-constraints
+              *transient-init-constraints*))
+      (setq *transient-init-functions*
+            new-transient-init-functions
+            *transient-init-constraints*
+            new-transient-init-constraints))))
 
-(defun invoke-store-transient-init-functions ()
-  (dolist (function-name *store-transient-init-functions*)
+(defun invoke-transient-init-functions ()
+  (dolist (function-name *transient-init-functions*)
     (with-simple-restart (skip-init-function "Skip transient-init-function ~A"
                                              function-name)
       (funcall function-name))))
@@ -63,8 +63,12 @@
 (defmethod bknr.datastore::restore-subsystem (store (subsystem initialization-subsystem)
                                               &key until)
   (declare (ignore until))
-  (bos.m2::invoke-store-transient-init-functions))
+  (invoke-transient-init-functions))
 
 (defmethod bknr.datastore::snapshot-subsystem (store (subsystem initialization-subsystem))
-  )
+  ;; We are calling the initialization functions also here, because
+  ;; for transactions that follow the current snapshot we want to be
+  ;; in the same initial state as if the store had been freshly
+  ;; restored.
+  (invoke-transient-init-functions))
 




More information about the Bknr-cvs mailing list