// the previous integration period, generating the postsynaptic
// the previous integration period, generating the postsynaptic
// events that must be delivered at the start of the next
// events that must be delivered at the start of the next
// integration period at the latest.
// integration period at the latest.
//TODO:
//An improvement might be :
//the exchange method simply exchanges spikes, and does not generate the event queues.It returns a struct that has both 1) the global spike list 2) an integer vector that describes the distribution of spikes across the ranks
//another method called something like build_queues that takes this spike info and returns the local spikes
// and the callbacks can then be called on the spike information directly in the model.