Fix resource leaking due to undeleted ngraph::Executable #210
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.
In tf-bridge there is a freshness tracker, which is a key-value storage of {key=some pointer, value=set<shared_ptr< ngraph::Executable>>}. There is mechanism to iterate each key-value pair in it and destroy the shared_ptr< ngraph::Executable> in it so that the resource can be reclaimed. However in the implementation, it is done on a copy of key-value pair, instead of the original storage itself. The original freshness_map is untouched and the resource in it is not reclaimed as expected.
The rest of the change is about to reduce the unnecessary incrementation/decrementation of use_count of shared_ptr.