Add explicit grid destroy when deleting Regridder #387
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.
Fixes JiaweiZhuang/xESMF#53.
When the
Regridder
orSpatialAverager
object is garage-collected, the ESMpy grid objects are not destroyed as they seem to still be referenced somewhere in the ESMpy Manager (or something alike). This change explicitly destroys the grids when theRegridder
object is removed.This will break any code that makes use of the Grid objects in a scope where the Regridder itself is not referenced. For example:
Will most likely return a destroyed grid object.
The other solution I see is to make a
destroy
method on theRegridder
object that destroys underlying grids, but that demands an explicit action from the user. It won't really fix the "memory leak" feeling that users get.