# simple case # stand alone async record record(calcout, "chain1") { field(CALC, "A:=A+1;B") field(ODLY, "0.1") field(TPRO, "$(TPRO=)") field(FLNK, "done1") } record(sub, "done1") { field(SNAM, "doneSubr") field(TPRO, "$(TPRO=)") } # original problem case # async record chained after syncronous record record(calcout, "chain2:1") { field(CALC, "A:=A+1;B") # ODLY=0 synchronous field(OUT , "chain2:2.B PP") field(TPRO, "$(TPRO=)") } record(ai, "chain2:3") { field(INP, "chain2:1 CPP") field(FLNK, "chain2:2") field(TPRO, "$(TPRO=)") } record(calcout, "chain2:2") { field(CALC, "A:=A+1;B") field(ODLY, "0.5") field(TPRO, "$(TPRO=)") field(FLNK, "done2") } record(sub, "done2") { field(SNAM, "doneSubr") field(TPRO, "$(TPRO=)") } # ANJ's error case # async record FLNK's to itself (via done3) record(calcout, "chain3") { field(CALC, "A:=A+1;B") field(ODLY, "0.1") field(FLNK, "done3") field(TPRO, "$(TPRO=)") } record(sub, "done3") { field(SNAM, "doneSubr") field(FLNK, "chain3") field(TPRO, "$(TPRO=)") } # loop breaking regression # should _not_ RPRO record(calcout,"chain4_pos") { field(CALC, "E:=E+1;E") field(OUT,"chain4_rel.A PP") field(TPRO, "$(TPRO=)") } record(calc,"chain4_rel") { field(CALC, "E:=E+1;E") field(FLNK,"chain4_lim") field(TPRO, "$(TPRO=)") } record(calc,"chain4_lim") { field(CALC, "E:=E+1;E") field(INPA,"chain4_pos PP") field(INPB,"chain4_pos.HIGH PP") field(INPC,"chain4_pos.LOW PP") field(FLNK,"chain4_pos") field(TPRO, "$(TPRO=)") } record(bo, "chain4_dummy") { field(TPRO, "$(TPRO=)") } # loop breaking regression part 2 # selft link should _not_ RPRO record(calcout,"chain5_cnt") { field(CALC, "E:=E+1;E") field(INPA,"chain5_cnt.A PP") field(OUT,"chain5_cnt.A PP") field(FLNK,"chain5_cnt") field(TPRO, "$(TPRO=)") }