@dm3 can you give an example? i.e. close to where you would have this problem
First
(defstate process
:start (let [v (get-value)] (do-with v)))
then
(defstate last-state
:start (atom nil))
(defstate process
:start (let [v (get-value)] (reset! last-state v) (do-with v)))
if last-state
is evaluated after the process
, it’s order sequence number will be higher, so if process/start
starts without any delay, last-state
will still be a NotStartedState