Community
Participate
Working Groups
Some Run-and-Tracks might benefit from an ability to stop & resume dependency recording, for instance, when calling 3rd party code such as listeners. In particular, selection service uses async calls to work around this issue which changes expected behavior. I'll add the following methods to RunAndTrack: pauseRecording() resumeRecoding() to provide this functionality and will update selection service to use it.
The Runtime change: http://git.eclipse.org/c/platform/eclipse.platform.runtime.git/commit/?id=06e81ee79961cf2de46c734ea4924bea432584ac The UI change: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=435a1052e7ed59def5756fc6d97cc01a129be9f9
.
With these new methods we can probably rewrite UpdateExpression to not dispatch its calls asynchronously?
(In reply to comment #3) > With these new methods we can probably rewrite UpdateExpression to not dispatch > its calls asynchronously? Seems like a good idea, I'll reopen bug bug 347140.
It seems that I need to make the pair of calls safer: the number of "pause" requests must match with the number of "resume" requests. The simplest way to do that seems to be providing one method on RunAndTrack: runExternalCode(Runnable runnable) instead of pauseRecording() and resumeRecoding() pair of methods. That would ensure that we get exactly one "pause" and one "resume" request. Runtime change: http://git.eclipse.org/c/platform/eclipse.platform.runtime.git/commit/?id=1634731aa1325e5c90be3be2b08384414b77f77e I also updated SelectionAggregator.
*** Bug 370490 has been marked as a duplicate of this bug. ***
Verified that code is present in the I20120313-0610.