Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-dev] Porting guide on thread safety


I am writing a section in the Eclipse 3.0 porting guide on thread safety. The general description of the problem is that Eclipse 3.0 is much more concurrent, and plug-in writers need to make themselves thread safe if they are participating in platform features that now happen in background threads.  For example, if your plugin has a resource change listener, you need to be aware that certain resource change events now occur in the background, and may run concurrently with other parts of your plugin.  As part of this section I would like to list all API mechanisms and extension points that may expose clients to this threading risk.  I have a draft list below, but if I am missing anything that you can think of, please respond to me directly.  Note that for completeness I am including mechanisms such as decorators that were already running in the background in Eclipse 2.1.

Core:
 - registry change listeners
 - resource change listeners (auto-build events only)
 - incremental project builders
 - workspace save participants
Text:
 - quick diff reference providers (org.eclipse.ui.workbench.texteditor.quickdiffReferenceProvider)
UI:
 - decorators (org.eclipse.ui.decorators)
 - early startup participants (org.eclipse.ui.startup)
Team:
 - repository providers
 - team subscribers
Debug:
 - launch configurations (org.eclipse.debug.core.launchConfigurationTypes)
JDT:
 - java element change listeners

Back to the top