% % stack: ack-brand now-brand expected step % !Act.Next *trakactz { % % got proper response % pop +Act.Next *trakactx } { % % no response yet, see if received invalid response % _Act.Received { % % got improper response, try step again % pop2 "response" -Act.Next *trakactx } { % % just haven't received anything yet, check timeout % "Act." &_Act.Tracker _ any? { Time.Now "s" Time.Diff 120 gt } { true } ifelse { % % waited 2 minutes, should have response, try step again % pop2 "overlong" -Act.Next *trakactx } { % % not past timeout % pop2nd _Act.Next *trakactx } ifelse } ifelse } ifelse