Sandbox

 msc { a,b,c;

a->b [label="ab"] ; b->c [label="bc(TRUE)"]; c=>c [label="process(1)"]; c=>c [label="process(2)"]; ...; c=>c  [label="process(n)"]; c=>c [label="process(END)"]; a<<=c [label="callback"]; ---  [label="If more to run", ID="*"]; a->a [label="next"]; a->c [label="ac"]; b<-c [label="cb(TRUE)"]; b->b [label="stalled(...)"]; a<-b [label="ab = FALSE"]; }