Changeset 3538

Show
Ignore:
Timestamp:
07/21/08 17:25:37 (4 months ago)
Author:
ksprotte
Message:

call invoke-store-transient-init-functions also in snapshot-subsystem

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/projects/bos/m2/initialization-subsystem.lisp

    r3537 r3538  
    11(in-package :bos.m2) 
    22 
    3 ;;; store-transient-init-functions 
     3;;; transient-init-functions 
    44;;; 
    55;;; Allows for registering transient init functions that 
    66;;; will be called after each restore of m2-store 
    77 
    8 (defvar *store-transient-init-functions* nil) 
    9 (defvar *store-transient-init-constraints* nil) 
     8(defvar *transient-init-functions* nil) 
     9(defvar *transient-init-constraints* nil) 
    1010 
    11 (defun register-store-transient-init-function (init-function &rest dependencies) 
     11(defun register-transient-init-function (init-function &rest dependencies) 
    1212  "Register INIT-FUNCTION (a function-name) to be called after 
    1313each restore of m2-store.  Optionally, names of other 
     
    2828    (dolist (dependency dependencies) 
    2929      (check-type dependency symbol))     
    30     (let (new-store-transient-init-functions 
    31           new-store-transient-init-constraints) 
     30    (let (new-transient-init-functions 
     31          new-transient-init-constraints) 
    3232      (let ((constraints (build-constraints)) 
    3333            ;; dont know yet whether we have a circular dependency - so 
    3434            ;; we want to be able to abort without changes 
    35             (*store-transient-init-functions* *store-transient-init-functions*) 
    36             (*store-transient-init-constraints* *store-transient-init-constraints*))       
    37         (pushnew init-function *store-transient-init-functions*) 
     35            (*transient-init-functions* *transient-init-functions*) 
     36            (*transient-init-constraints* *transient-init-constraints*))       
     37        (pushnew init-function *transient-init-functions*) 
    3838        (dolist (dependency dependencies) 
    39           (pushnew dependency *store-transient-init-functions*)) 
     39          (pushnew dependency *transient-init-functions*)) 
    4040        (dolist (constraint constraints) 
    41           (pushnew constraint *store-transient-init-constraints* :test #'equal)) 
    42         (setq new-store-transient-init-functions 
    43               (topological-sort *store-transient-init-functions* 
    44                                 *store-transient-init-constraints* 
     41          (pushnew constraint *transient-init-constraints* :test #'equal)) 
     42        (setq new-transient-init-functions 
     43              (topological-sort *transient-init-functions* 
     44                                *transient-init-constraints* 
    4545                                #'ignorant-tie-breaker) 
    46               new-store-transient-init-constraints 
    47               *store-transient-init-constraints*)) 
    48       (setq *store-transient-init-functions* 
    49             new-store-transient-init-functions 
    50             *store-transient-init-constraints* 
    51             new-store-transient-init-constraints)))) 
     46              new-transient-init-constraints 
     47              *transient-init-constraints*)) 
     48      (setq *transient-init-functions* 
     49            new-transient-init-functions 
     50            *transient-init-constraints* 
     51            new-transient-init-constraints)))) 
    5252 
    53 (defun invoke-store-transient-init-functions () 
    54   (dolist (function-name *store-transient-init-functions*) 
     53(defun invoke-transient-init-functions () 
     54  (dolist (function-name *transient-init-functions*) 
    5555    (with-simple-restart (skip-init-function "Skip transient-init-function ~A" 
    5656                                             function-name) 
     
    6464                                              &key until) 
    6565  (declare (ignore until)) 
    66   (bos.m2::invoke-store-transient-init-functions)) 
     66  (invoke-transient-init-functions)) 
    6767 
    6868(defmethod bknr.datastore::snapshot-subsystem (store (subsystem initialization-subsystem)) 
    69   ) 
     69  ;; We are calling the initialization functions also here, because 
     70  ;; for transactions that follow the current snapshot we want to be 
     71  ;; in the same initial state as if the store had been freshly 
     72  ;; restored. 
     73  (invoke-transient-init-functions)) 
    7074