Bug 289751 - [vm] IVMEventListener(AbstractVMProvider).handleEvent(Object,RequestMonitor) not called on executor
Summary: [vm] IVMEventListener(AbstractVMProvider).handleEvent(Object,RequestMonitor) ...
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-debug-dsf (show other bugs)
Version: 7.0   Edit
Hardware: PC Windows Vista
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-17 10:57 EDT by John Cortell CLA
Modified: 2020-09-04 15:23 EDT (History)
1 user (show)

See Also:


Attachments
Patch with fix. (4.40 KB, patch)
2009-09-22 14:14 EDT, Pawel Piech CLA
pawel.1.piech: iplog-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John Cortell CLA 2009-09-17 10:57:32 EDT
IVMEventListener provides an executor and states that it should be invoked on that executor. We fail to adhere to this in a few places.

These missed cases seem to be a result of the non-interface utility method AbstractVMProvider.handleEvent(Object). I believe that method should either be

(a) annotated with @ConfinedToDsfExecutor("#getExecutor()"), and the scenarios below should be corrected, or
(b) annotated with @ThreadSafe and the implementation tweaked to call its IVMEventListener.handleEvent(Object, RequestMonitor) on the executor. However, as some pieces of code do invoke this on the executor thread, we'd want to simply those call points and avoid inefficiency/redundancy

Scenarios where we are currently not invoking the VM Provider's IEventListener.handleEvent method without using its executor. Set a breakpoint in that method and exercise these scenarios. 

1. during debug session launch, when VariableVMProvider.fPresentationContextListener.propertyChange() is called

2. Modify the value of a variable via the Variables view

Will add more scenarios if I run across any.
Comment 1 Pawel Piech CLA 2009-09-22 14:14:43 EDT
Created attachment 147818 [details]
Patch with fix.