Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-debug-dev] dispose() for ICDI target, thread andstack frame interfaces

I agree that a notification may be required for ICDIStackFrame. But if a
CDI target or thread is terminated doesn't it mean that you can do a
cleanup at that moment?  

Mikhail
-----Original Message-----
From: cdt-debug-dev-bounces@xxxxxxxxxxx
[mailto:cdt-debug-dev-bounces@xxxxxxxxxxx] On Behalf Of John Cortell
Sent: Wednesday, July 16, 2008 1:17 PM
To: CDT Debug developers list; CDT Debug developers list
Subject: RE: [cdt-debug-dev] dispose() for ICDI target, thread andstack
frame interfaces

An interface/class whose implementation allocates and holds on to
external (non-Java) resources is a good candidate for a dispose method.
We see this pattern in GUI libraries and it applies equally to CDI. A
CDI implementation typically deals with some external entity--a debugger
engine (DE). Consequently, CDI objects allocate and attach themselves to
DE resources. It may not be ideal to subject the external entity to the
non-deterministic cleanup of the VM garbage collector. The only way to
avoid that is through explicit dispose calls.

The user steps out of a function in a debug session. CDT has no further
use for the topmost ICDIStackFrame but the CDI client has no way of
being told that today. The client may have all sorts of DE cleanup it
may need to do when a stack frame is no longer needed. 
Using the Java finalize method is not ideal. The solution is to have CDT
calls ICDIStackFrame.dispose() when CStackFrame.dispose() is called.

John


At 04:13 AM 7/16/2008, Mikhail Khodjaiants wrote:
>I don't mind adding ICDIDisposable if it is required. dispose() is 
>added to the CDT objects to prevent the "post-mortem" activity, for 
>instance, the event handling when a thread is terminated but the 
>corresponding CThread is still present in the GUI.
>Why do you need to propagate this behaviour to the CDI layer?
>
>Mikhail
>-----Original Message-----
>From: cdt-debug-dev-bounces@xxxxxxxxxxx 
>[mailto:cdt-debug-dev-bounces@xxxxxxxxxxx] On Behalf Of John Cortell
>Sent: Tuesday, July 15, 2008 5:31 PM
>To: CDT Debug developers list
>Subject: [cdt-debug-dev] dispose() for ICDI target,thread and stack 
>frame interfaces
>
>The CDI interfaces tied to the Debug View standard model hierarchy lack

>a dispose method:
>
>         ICDITarget
>         ICDIThread
>         ICDIStackFrame
>
>Their CDT counterparts (implementations) have a dispose method (e.g.,
>CStackFrame.dispose) that could and should propagate the dispose to 
>their associated CDI object. This is needed for deterministic cleanup.
>
>I was thinking of coming up with an ICDIDisposable. CDT would 
>instanceof for that interface and call it where available for 
>implementations of the above three interfaces and possibly more in the 
>future where we find a need. Any objections?
>
>John
>
>_______________________________________________
>cdt-debug-dev mailing list
>cdt-debug-dev@xxxxxxxxxxx
>https://dev.eclipse.org/mailman/listinfo/cdt-debug-dev
>
>--
>IMPORTANT NOTICE: The contents of this email and any attachments are 
>confidential and may also be privileged. If you are not the intended 
>recipient, please notify the sender immediately and do not disclose the

>contents to any other person, use it for any purpose, or store or copy 
>the information in any medium.  Thank you.
>
>
>_______________________________________________
>cdt-debug-dev mailing list
>cdt-debug-dev@xxxxxxxxxxx
>https://dev.eclipse.org/mailman/listinfo/cdt-debug-dev

_______________________________________________
cdt-debug-dev mailing list
cdt-debug-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-debug-dev

-- 
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium.  Thank you.




Back to the top