Bug 36957 - [Plan Item] Support concurrent activities
Summary: [Plan Item] Support concurrent activities
Status: CLOSED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.1   Edit
Hardware: All All
: P2 enhancement (vote)
Target Milestone: 3.0 M7   Edit
Assignee: Tod Creasey CLA
QA Contact:
URL:
Whiteboard:
Keywords: plan
: 38219 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-04-25 18:20 EDT by Jim des Rivieres CLA
Modified: 2005-05-10 14:54 EDT (History)
23 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jim des Rivieres CLA 2003-04-25 18:20:57 EDT
Support background activities. In Eclipse 2.0 and 2.1, certain operations like 
builds and searches always run synchronously and block the user at the UI from 
doing work until the build has completed. The Eclipse Platform should support 
operations running asynchronously in the background, so that the user is not 
forced to be entirely idle while long-running operations are in progress. 
[Platform UI, Platform Core, Platform Text, JDT Core, JDT UI, PDE] [Theme: 
Responsive UI]
Comment 1 Jim des Rivieres CLA 2003-04-28 10:48:44 EDT
I've a clarifying sentence to the end: "This will likely require an improved 
concurrency architecture with more explicit rules."
Comment 2 John Arthorne CLA 2003-05-01 14:48:27 EDT
I have created a branch on org.eclipse.core.resources and
org.eclipse.core.runtime for this work.  I will start with the initial work in
runtime, although I don't know yet if that will be its final resting place. The
branch tag is "Bug_36957", and the root version is "Root_Bug_36957".
Comment 3 Jim des Rivieres CLA 2003-05-21 14:01:36 EDT
Changed plan item title to "Support concurrent activities".
Comment 4 Rafael Chaves CLA 2003-05-28 20:53:46 EDT
*** Bug 38219 has been marked as a duplicate of this bug. ***
Comment 5 John Arthorne CLA 2003-06-04 13:54:20 EDT
I have made a documentation home for this bug report here:

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-core-home/plan_concurrency.html

This page currently contains an overview document that describes the problems
and outlines our plan for a solution.
Comment 6 Nick Edgar CLA 2003-06-23 16:11:38 EDT
Off of the UI team's development resources page, the Proposals page now has a 
link to the Core team's page for this activity.
Comment 7 Tod Creasey CLA 2003-06-23 16:27:04 EDT
Following on from the job handling released by Core in M1 the UI team has 
released further support for the Job framework in the UI. It is now 
possible to create an instance of UIJob which will run in the UI Thread 
rather than in some other Thread supplied by the JobManager. This is a 
requirement for any code that must interact with an SWT component.

UIJob requires a Display to be able to run as it is run using an 
asynchExec. This Display must be set before the UIJob is scheduled. If a 
UIJob is used then the creator of the UIJob must also set the display to 
run it in and be sure that that display exists when the code is executed. 
An alternative to UIJob is the WorkbenchUIJob which will get a display 
from a WorkbenchWindow if one is not set.WorkbenchUIJob is defined in the 
org.eclipse.ui.workbench project and so it can be used by plugins with 
org.eclipse.ui.workbench as a prerequisite.

The first cut of the progress indicator is now also available. It is 
disabled by default. You can enable it by adding the line 
org.eclipse.ui.workbench/showProgressIndicator=true to the file 
plugin_customization.ini in org.eclipse.platform.
Comment 8 John Arthorne CLA 2003-08-07 10:37:09 EDT
I have added a document to the documentation page (see comment #5) about
proposed changes to resource change listeners and auto-build.  This page also
contains a patch that can be applied on top of 3.0 M2 that moves auto-build into
a background thread with progress via the progress view.  Use at your own risk ;)
Comment 9 Michael Scharf CLA 2003-09-10 16:13:13 EDT
What is the relationship of this proposal to JSR-166?

  http://www.jcp.org/en/jsr/detail?id=166

JSR-166 seems to be based on Doug Leas concurrency library
 http://gee.cs.oswego.edu/dl/concurrency-interest/index.html
 http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html

Part of this library is described in Doug Lea "Concurrent Programming in Java: 
Design principles and patterns":
 http://gee.cs.oswego.edu/dl/cpj/
 http://www.awprofessional.com/catalog/product.asp?product_id={3BADE5EF-2784-
48BF-ADB3-20E1898A26C0}

Is there any overlap between JSR-166 and the new eclipse concurrent activities?
Is there no relation between the two, because JSR-166 tries to solve a totally 
different problem?
Or can both solutions be used in parallel because they don't impact each other?

[I was looking for JSR-166 in bugzilla and on the eclipe websibe (including the 
mailing lists) and I could not find any reference, therefore I ask this here. 
The closest I could get was Doug Lea being mentioned in 
http://dev.eclipse.org/newslists/news.eclipse.tools/msg10329.html]


Michael
Comment 10 John Arthorne CLA 2003-09-10 16:27:19 EDT
There is some overlap in functionality between JSR-166 and the support that is
being added for this plan item, but there is no formal relationship between the
two. I have tried to implement the low level Eclipse concurrency API in a way
that will allow us to replace our implementation with the one from the JSR when
it becomes available, but realistically that is several years away.  The work in
Eclipse goes far outside the scope of JSR-166 in dealing with look and feel and
user exerience in a GUI-based concurrent application.
Comment 11 John Arthorne CLA 2003-10-24 17:53:44 EDT
For those interested in following progress, see the documentation link in
comment #5.  New documents have been added to capture recent design discussions
about UI presentation and other miscellaneous outstanding issues.
Comment 12 Tod Creasey CLA 2004-02-11 16:54:55 EST
I am going to mark this as fixed as we have added all of the support in core 
and ui that we plan to for 3.0. Specific problems can be addressed in other 
problem reports.
Comment 13 John Arthorne CLA 2004-02-11 17:29:39 EST
One final comment on this plan item: the page mentioned in comment #5 will
continue to be updated as we write more documentation, articles, and examples on
concurrency and responsiveness. I have just added slides from my talk at
EclipseCon 2004 to this page, and there is also an examples plug-in that
demonstrates many of the capabilities of the concurrency and responsive UI
infrastructure. If anyone in the community writes articles, demos, or other doc
in this area I would be happy to link it to that page.
Comment 14 Tod Creasey CLA 2005-05-10 14:54:04 EDT
Marking as closed.