Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 155176 Details for
Bug 287907
Indexer holds exclusive index lock for too long
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Experimental patch with lock yielding
253080_experimental.txt (text/plain), 6.55 KB, created by
Sergey Prigogin
on 2010-01-02 23:48:40 EST
(
hide
)
Description:
Experimental patch with lock yielding
Filename:
MIME Type:
Creator:
Sergey Prigogin
Created:
2010-01-02 23:48:40 EST
Size:
6.55 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.cdt.core.tests >Index: parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java,v >retrieving revision 1.70 >diff -u -r1.70 IndexBugsTests.java >--- parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java 10 Nov 2008 05:54:38 -0000 1.70 >+++ parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java 10 Nov 2008 06:11:52 -0000 >@@ -609,7 +609,7 @@ > > // template <class U1> class Test; > // template <class U2> void f(); >- public void _test253080() throws Exception { >+ public void test253080() throws Exception { > waitForIndexer(); > > String[] testData = getContentsForTest(3); >#P org.eclipse.cdt.core >Index: parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java,v >retrieving revision 1.32 >diff -u -r1.32 PDOMCPPClassTemplate.java >--- parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java 9 Nov 2008 05:33:06 -0000 1.32 >+++ parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplate.java 10 Nov 2008 06:11:53 -0000 >@@ -30,6 +30,7 @@ > import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateNonTypeParameter; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTemplateParameter; >+import org.eclipse.cdt.internal.core.Util; > import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding; > import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInstanceCache; > import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants; >@@ -55,6 +56,19 @@ > > public PDOMCPPClassTemplate(PDOM pdom, PDOMNode parent, ICPPClassTemplate template) throws CoreException { > super(pdom, parent, template); >+ try { >+ ICPPTemplateParameter[] templateParameters = template.getTemplateParameters(); >+ PDOMCPPLinkage linkage = (PDOMCPPLinkage) getLinkageImpl(); >+ PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + PARAMETERS, linkage); >+ for (ICPPTemplateParameter parameter : templateParameters) { >+ PDOMNode pdomParameter = linkage.createBinding(this, parameter); >+ if (pdomParameter != null) { >+ list.addMember(pdomParameter); >+ } >+ } >+ } catch (DOMException e) { >+ throw new CoreException(Util.createStatus(e)); >+ } > } > > public PDOMCPPClassTemplate(PDOM pdom, int bindingRecord) { >@@ -140,10 +154,8 @@ > > @Override > public void addChild(PDOMNode member) throws CoreException { >- if (member instanceof ICPPTemplateParameter) { >- PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + PARAMETERS, getLinkageImpl()); >- list.addMember(member); >- } else { >+ // Template parameters are added in ctor. >+ if (!(member instanceof ICPPTemplateParameter)) { > super.addChild(member); > } > } >Index: parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java,v >retrieving revision 1.19 >diff -u -r1.19 PDOMCPPFunctionTemplate.java >--- parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java 8 Nov 2008 23:48:29 -0000 1.19 >+++ parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplate.java 10 Nov 2008 06:11:53 -0000 >@@ -24,6 +24,7 @@ > import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateArgument; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateInstance; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter; >+import org.eclipse.cdt.internal.core.Util; > import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInstanceCache; > import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants; > import org.eclipse.cdt.internal.core.pdom.PDOM; >@@ -50,6 +51,19 @@ > public PDOMCPPFunctionTemplate(PDOM pdom, PDOMNode parent, ICPPFunctionTemplate template) > throws CoreException { > super(pdom, parent, (ICPPFunction) template, false); >+ try { >+ ICPPTemplateParameter[] templateParameters = template.getTemplateParameters(); >+ PDOMCPPLinkage linkage = (PDOMCPPLinkage) getLinkageImpl(); >+ PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + TEMPLATE_PARAMS, linkage); >+ for (ICPPTemplateParameter parameter : templateParameters) { >+ PDOMNode pdomParameter = linkage.createBinding(this, parameter); >+ if (pdomParameter != null) { >+ list.addMember(pdomParameter); >+ } >+ } >+ } catch (DOMException e) { >+ throw new CoreException(Util.createStatus(e)); >+ } > } > > public PDOMCPPFunctionTemplate(PDOM pdom, int bindingRecord) { >@@ -100,10 +114,7 @@ > > @Override > public void addChild(PDOMNode member) throws CoreException { >- if (member instanceof ICPPTemplateParameter) { >- PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + TEMPLATE_PARAMS, getLinkageImpl()); >- list.addMember(member); >- } >+ // Template parameters are added in ctor. > } > > @Override >Index: parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMFile.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMFile.java,v >retrieving revision 1.50 >diff -u -r1.50 PDOMFile.java >--- parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMFile.java 9 Nov 2008 06:08:49 -0000 1.50 >+++ parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMFile.java 10 Nov 2008 06:11:53 -0000 >@@ -30,6 +30,7 @@ > import org.eclipse.cdt.core.dom.ast.IBinding; > import org.eclipse.cdt.core.dom.ast.IMacroBinding; > import org.eclipse.cdt.core.dom.ast.IParameter; >+import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDirective; > import org.eclipse.cdt.core.index.IIndexFileLocation; > import org.eclipse.cdt.core.index.IIndexInclude; >@@ -305,7 +306,7 @@ > > private IIndexFragmentName createPDOMName(PDOMLinkage linkage, IASTName name, PDOMName caller) { > final IBinding binding = name.getBinding(); >- if (binding instanceof IParameter) { >+ if (binding instanceof IParameter || binding instanceof ICPPTemplateParameter) { > return null; > } > try {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
eclipse.sprigogin
:
iplog-
Actions:
View
|
Diff
Attachments on
bug 287907
:
149821
|
150451
|
150633
|
155176
|
155189
|
155709
|
156475
|
157044
|
157435
|
157438