Crossovers only happen once every 30 minutes at most.

And this criterion is only determined at run(). Therefore, it is appropriate to act on crossovers upon a run() call.