Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] EDC and asynchronous operations

Ken,

Can you speak to the synchronous implementations EDC has for asynchronous DSF services. E.g., EDC's implementations of, e.g.,
  • IStack.getFrames(IDMContext, DataRequestMonitor<IFrameDMContext[]>)
  • IStack.getLocals(IFrameDMContext, DataRequestMonitor<IVariableDMContext[]>)
synchronously gather the data from the TCF backend, which seems to defeat the asynchronous nature of DSF. I.e., the DSF executor thread is tied up during the entire time EDC is pulling together the stack crawl (or local variables) through a series of low-level TCF calls (reading registers and memory). The current implementation reduces asycnhronous calls to synchronous ones at both the DSF boundary and the TCF one.

Should we not instead be looking at ACPM, taking Pawel's prototype work as a starting point

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=310345

Additionally, I see the watering down of aync calls to sync ones even where it doesn't seem to simplify things. Eg., in

   org.eclipse.cdt.debug.edc.services.Registers.getRegisterValue(RegisterDMC, DataRequestMonitor<String>),

the call is given a request monitor, but the implementation calls TCF synchronously and waits an arbitrary 15 seconds for the response to return.

John





Back to the top