Observe in main.m, agents are created and then the system repeats until a pre-designated time.
// Perform any events scheduled for startup
performEvents();
// Main loop on periods
while (t < lasttime) {
// Either perform a fake warmup period or a
normal one (increments t)
if (t < 0)
warmup();
else
period();
// Perform any scheduled events
performEvents();
}
This is calling functions warmup() and period() that exist in control.m, which in turn loop over agents.
As far as I can see, this scheduling approach is not wrong, but
it certainly isn't very right.