[
https://issues.apache.org/jira/browse/LUCENENET-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12700606#action_12700606
]
Digy commented on LUCENENET-181:
--------------------------------
Hi Eyal,
Would you test the code attached?
TermInfosReader:
{code}
private SegmentTermEnum GetEnum()
{
SegmentTermEnum termEnum = (SegmentTermEnum)
System.Threading.Thread.GetData(enumerators);
if (termEnum == null)
{
termEnum = Terms();
System.Threading.Thread.SetData(enumerators,
termEnum);
}
return termEnum;
}
{code}
What is the meaning of the code if you initilalize "termEnum" everytime
TermInfosReader is created
What I try to say is, If they are not declared as static, they are not
compatible with Java.
DIGY
> Port of ThreadLocal is wrong?
> -----------------------------
>
> Key: LUCENENET-181
> URL: https://issues.apache.org/jira/browse/LUCENENET-181
> Project: Lucene.Net
> Issue Type: Improvement
> Reporter: Digy
> Priority: Minor
> Attachments: TestCase.cs
>
>
> AFAIK, "ThreadLocal" in Java is there to hold objects which are intented to
> be used thread-wide. So, its port-equivalent "LocalDataStoreSlot" should
> contain objects related with the executing thread. But, since they are not
> declared as "static" in Analyzer.cs, FieldsReader.cs, SegmentReader.cs and
> TermInfosReader.cs, they are created with every class contruction, changing
> the behaviour of "ThreadLocal" and possibly resulting in performance
> degradation.
> I will attach a test case for this issue.
> If I am wrong, then there is no problem. But If I am right we are in trouble;
> Since adding "static" to variables declared as LocalDataStoreSlot results in
> failing of almost all test cases.
> DIGY
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.