Fix for #506 - Prune dead elements from IndexReader.parentReaders collection when they go out of scope #509
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.
Lucene.Net.Index.IndexReader
: UseConditionalWeakTable<TKey, TValue>
/WeakDictionary<TKey, TValue>
to ensure dead elements are pruned and garbage collected (fixes IdentityWeakReference should be IDisposable #506).WeakKey
ofWeakDictionary<TKey, TValue>
fromWeakReference
toWeakReference<T>
.WeakDictionary<TKey, TValue>
toConcurrentDictionary<TKey, TValue>
to allow theClean()
method to remove items while iterating forward instead of instantiating a new collection.