class Test

sdagentry teststart (TestMsg *msg) {
  atomic {
    CPrintf("Starting forall loops\n");
  }
  forall[i] (1:100,1) {
    for (j[i-1]=1;j[i-1]<=10;j[i-1]++) {
      when entry1[i](Msg *m1),entry2[j[i-1]](Msg *m2) {
        atomic {
          CPrintf("processing entry1[%d] & entry2[%d]\n", i, j[i-1]);
          sum += (m1->data * m2->data);
        }
      }
    }
  }
  atomic {
    CPrintf("Ended forall loops. Sum = %d\n", sum);
    CharmExit();
  }
}