@@ -167,7 +167,8 @@ function check_assignable(sys, sym)
167167    end 
168168end 
169169
170- function  compile_functional_affect (affect:: ImperativeAffect , sys; kwargs... )
170+ function  compile_functional_affect (
171+         affect:: ImperativeAffect , sys; reset_jumps =  false , kwargs... )
171172    #= 
172173    Implementation sketch: 
173174        generate observed function (oop), should save to a component array under obs_syms 
@@ -247,7 +248,7 @@ function compile_functional_affect(affect::ImperativeAffect, sys; kwargs...)
247248
248249    upd_funs =  NamedTuple {mod_names} ((setu .((sys,), first .(mod_pairs))... ,))
249250
250-     let  user_affect =  func (affect), ctx =  context (affect)
251+     let  user_affect =  func (affect), ctx =  context (affect), reset_jumps  =  reset_jumps 
251252        @inline  function  (integ)
252253            #  update the to-be-mutated values; this ensures that if you do a no-op then nothing happens
253254            modvals =  mod_og_val_fun (integ. u, integ. p, integ. t)
@@ -262,6 +263,8 @@ function compile_functional_affect(affect::ImperativeAffect, sys; kwargs...)
262263
263264            #  write the new values back to the integrator
264265            _generated_writeback (integ, upd_funs, upd_vals)
266+ 
267+             reset_jumps &&  reset_aggregated_jumps! (integ)
265268        end 
266269    end 
267270end 
0 commit comments