lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shad Storhaug (Jira)" <j...@apache.org>
Subject [jira] [Created] (LUCENENET-636) Port ConditionalWeakTable from .NET Core 3.x to .NET Standard 2.0
Date Fri, 27 Dec 2019 00:55:00 GMT
Shad Storhaug created LUCENENET-636:
---------------------------------------

             Summary: Port ConditionalWeakTable from .NET Core 3.x to .NET Standard 2.0
                 Key: LUCENENET-636
                 URL: https://issues.apache.org/jira/browse/LUCENENET-636
             Project: Lucene.Net
          Issue Type: Task
          Components: Lucene.Net Core, Lucene.Net.Facet, Lucene.Net.Spatial, Lucene.Net.TestFramework
    Affects Versions: Lucene.Net 4.8.0
            Reporter: Shad Storhaug


As per LUCENENET-610, the WeakDictionary that has been created to support FieldCache and a
few other Lucene.NET features does not perform well enough in highly concurrent environments.

The [ConditionalWeakTable<TKey, TValue>|https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.conditionalweaktable-2]
is a suitable replacement on .NET Standard 2.1, but on .NET Standard 2.0, it doesn't expose
the enumerator or the {{AddOrUpdate}} method. All of Lucene.NET's usages require one or the
other.

So, it would definitely be worth the effort to port the full implementation to .NET Standard
2.0.

This port should be added to [J2N|https://github.com/NightOwl888/J2N] in the {{J2N.Runtime.CompilerServices}}
namespace (to match .NET's namespace convention).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message