Commit 4c71caad authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Keep already-done nodes' component-operation-time

Fixes lp#1531887, whereby some actions all dependencies of which
were already done would be given the wrong timestamp after perform,
and every plan tried to do them anew.
parent 6a71d32f
......@@ -352,9 +352,11 @@ in some previous image, or T if it needs to be done.")
(defmethod component-operation-time ((o operation) (c component))
(gethash (type-of o) (component-operation-times c)))
(defmethod (setf component-operation-time) (stamp (o operation) (c component))
(setf (gethash (type-of o) (component-operation-times c)) stamp))
(defmethod mark-operation-done ((o operation) (c component))
(setf (gethash (type-of o) (component-operation-times c))
(compute-action-stamp nil o c :just-done t))))
(setf (component-operation-time o c) (compute-action-stamp nil o c :just-done t))))
;;;; Perform
......@@ -365,6 +365,8 @@ the action of OPERATION on COMPONENT in the PLAN"))
:index (if status ; index of action amongst all nodes in traversal
(action-index status) ;; if already visited, keep index
(incf (plan-total-action-count plan))))) ; else new index
(when (and done-p (not add-to-plan-p))
(setf (component-operation-time operation component) stamp))
(when add-to-plan-p ; if it needs to be added to the plan,
(incf (plan-planned-action-count plan)) ; count it
(unless aniip ; if it's output-producing,
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment