Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] PDom locking, lifecycle of PDom objects

Hmm, I'm a little confused. PDOM's don't know about eachother. So I'm not
sure what you meant by (c). Once you have the IASTName, you ask the
IPDOMResolver to resolve the IBinding, then from there you can navigate to
references or definitions or declarations. You would have to do that for
each PDOM. It certainly wasn't my intention that you can use PDOM objects
from one PDOM to navigate to objects in another PDOM. Given that, you would
only need to lock one PDOM at a time.

Doug Schaefer
QNX Software Systems
Eclipse CDT Project Lead
http://cdtdoug.blogspot.com
 

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On
Behalf Of Schorn, Markus
Sent: Tuesday, September 05, 2006 8:15 AM
To: CDT General developers list.
Subject: RE: [cdt-dev] PDom locking, lifecycle of PDom objects

Doug,

I avoided using PDom objects in the model of the Call Hierarchy,
so that should be ok. 
Yet I work with the PDOM to find the references. For that I have
to access multiple PDOMs and I can see a problem with that, because
I cannot obtain the locks on multiple PDOMs without taking the risk
of a deadlock. 

Here is what I do
(a) convert input from ICElement to IASTName.
(b) find references for the IASTName in PDom.
(c) find definitions for references in multiple PDoms
(d) convert definitions to ICElements.

(c) is the problematic step as I have to use the reference found in
    a PDom to search for definitions in all other PDoms.

I'll be happy to discuss this at the summit.

Markus.

> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Doug Schaefer
> Sent: Dienstag, 05. September 2006 13:42
> To: CDT General developers list.
> Subject: RE: [cdt-dev] PDom locking, lifecycle of PDom objects
> 
> Sorry, Markus, I was trying very hard not to work on the 
> holiday yesterday
> ;). 
> The PDOM is probably immature in this area, which is one 
> reason why the
> Index View is hidden and not recommended for heavy use. The 
> PDOM does have a
> read/write lock on it. While you are looking at objects you 
> should have the
> read lock turned on. You shouldn't keep them around long 
> term. That is the
> role of the ICElement objects. That comes back to the need to 
> be able to
> create ICElement objects from the PDOM and to update them 
> based on PDOM
> updates. That would probably make your life easier.
> 
> This is something we need to talk about at the Summit. I'll have a
> presentation there that will hopefully clarify what the 
> architecture is
> supposed to be.
> 
> Doug Schaefer
> QNX Software Systems
> Eclipse CDT Project Lead
> http://cdtdoug.blogspot.com
>  
> 
> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On
> Behalf Of Schorn, Markus
> Sent: Tuesday, September 05, 2006 4:19 AM
> To: CDT General developers list.
> Subject: RE: [cdt-dev] PDom locking, lifecycle of PDom objects
> 
> Hi Doug,
> please help me out on this, I really need to understand how 
> to correctly
> use locks on the PDom. I try to restate my question:
> 
> The implementation of the Call Hierarchy has the need to work 
> with multiple PDoms, because such hierarchies may span over multiple
> projects. I must not simultaneously hold locks of multiple PDoms
> as this would lead to dead-locks. So I have to avoid locks where
> possible and I have to understand under which circumstances this
> is reasonable to do.
> 
> If there is no safe way to work with multiple PDoms we should
> make changes to our architecture. That's why I'd like to understand
> this as soon as possible.
> 
> Markus.
> 
> > -----Original Message-----
> > From: cdt-dev-bounces@xxxxxxxxxxx 
> > [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Schorn, Markus
> > Sent: Montag, 04. September 2006 15:26
> > To: CDT General developers list.
> > Subject: [cdt-dev] PDom locking, lifecycle of PDom objects
> > 
> > Hi,
> > I am trying to understand how to safely use the PDom. I have 
> > a bunch of
> > questions. I can only ask the first one, as the next one will 
> > depend on
> > the first answer. 
> > 
> > Objects obtained by the PDOM (e.g. PDOMName) will actually 
> access the
> > database when I invoke methods (e.g. 
> PDOMName.toCharArray()) on them.
> > What happens if the database was modified after the PDOM object was
> > handed to me?
> > 
> > Markus.
> > _______________________________________________
> > cdt-dev mailing list
> > cdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> > 
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> 
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top