timed global protocol Recursion(role A, role B, role C) {
TestInit() from A to B within [0;1] using a and resetting ();
rec Loop {
Test0() from A to B within [0;1] using a and resetting ();
choice at A
{
Test1() from A to B within [0;1] using a and resetting ();
Test2(payload) from A to B within [0;1] using a and resetting ();
Test3() from A to B within [0;1] using a and resetting (a);
Test4(payload) from A to B within [0;1] using a and resetting (a);
continue Loop;
} or {
Test1() from A to B within [0;1] using a and resetting ();
Test2(payload) from A to B within [0;1] using a and resetting ();
Test3() from A to B within [0;1] using a and resetting (a);
Test4(payload) from A to B within [0;1] using a and resetting (a);
}
}
}