Community
Participate
Working Groups
The query#perform method should take a progress monitor in argument to allow for cancellation while iterating over a large set of entries.
see also bug 214645 for some previous discussion on this topic
Ian, you may want to look into that one while you are doing the Collector changes.
Ok, I'm assigning this to me so I can track it easier. Thanks Pascal.
(In reply to comment #3) > Ok, I'm assigning this to me so I can track it easier. Thanks Pascal. > With all the work I'm doing around queries, this should be pretty easy. The only problem is how much work do we give the progress monitor? Queries take an iterator, and we don't necessarily know the size. One option is to provide two perform methods, one with a monitor (and size) and one without. The second will delegate to the first (with null), and if the progress monitor is provided, it will be used, otherwise no progress will be tracked. Is there other options for tracking progress when we don't know how much progress to track?
Updating milestone field. Any thoughts on comment #4?
Since we are in API freeze (and this would be an API change) I propose we wait until 3.6 for this one. Thoughts?
Marking 4.o since we don't have a better milestone for now.
Still interested in that Ian?
When moving to expression based queries it will be difficult to do proper progress monitoring during evaluation. It would slow things down significantly. It would be feasible to start a query by asking for a monitor with IProgressMonitor.UNKNOWN. The expression evaluator could then tick this monitor and check it for cancellation on a regular basis until the query is complete. That would mean that no monitor or submonitors needs to be passed down to the actual evaluation methods. Instead, the monitor can be kept in the evaluation context. No "progress" is reported, but at least there would be an indication that it is alive and can be cancelled.
No further work planned on this.