Modified loop over agents in schedule step method #356
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This addresses both #352 and #302, basically the same issue
If agents are deleted while looping over agents list in the model schedule,
looping becomes unpredictable and agents step methods for some agents may not be called for a given model step
A simple solution seems to be to iterate over a shallow copy of the agent list by using [:]
A shallow copy constructs a new compound object and then (to the extent possible) inserts references into it to the objects found in the original. So the objects we get from iteration are referencing the originals, but the copied list is not modified if agents are removed
A dict implementation could still be a preferable solution in terms of performance ( see #305) , but this one should have less impact