1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-22 06:02:11 +02:00

Bug 315461 - [launch] Invalid thread access exception during launch

This commit is contained in:
Ken Ryall 2010-06-03 17:19:19 +00:00
parent 912f531ec4
commit 8cf1d78978
2 changed files with 31 additions and 22 deletions

View file

@ -34,18 +34,22 @@ public class DsfDebugUITools {
* @since 2.1 * @since 2.1
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static void enableActivity(String activityID, boolean enableit) public static void enableActivity(final String activityID, final boolean enableit)
{ {
IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport(); PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
IActivityManager activityManager = workbenchActivitySupport.getActivityManager(); public void run() {
Set<String> enabledActivityIds = new HashSet<String>(activityManager.getEnabledActivityIds()); IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();
boolean changed = false; IActivityManager activityManager = workbenchActivitySupport.getActivityManager();
if (enableit) Set<String> enabledActivityIds = new HashSet<String>(activityManager.getEnabledActivityIds());
changed = enabledActivityIds.add(activityID); boolean changed = false;
else if (enableit)
changed = enabledActivityIds.remove(activityID); changed = enabledActivityIds.add(activityID);
if (changed) else
workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds); changed = enabledActivityIds.remove(activityID);
if (changed)
workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds);
}
});
} }
} }

View file

@ -122,18 +122,23 @@ public class LaunchUtils {
* @since 6.1 * @since 6.1
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static void enableActivity(String activityID, boolean enableit) public static void enableActivity(final String activityID, final boolean enableit)
{ {
IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport(); PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
IActivityManager activityManager = workbenchActivitySupport.getActivityManager(); public void run() {
Set<String> enabledActivityIds = new HashSet<String>(activityManager.getEnabledActivityIds()); IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();
boolean changed = false; IActivityManager activityManager = workbenchActivitySupport.getActivityManager();
if (enableit) Set<String> enabledActivityIds = new HashSet<String>(activityManager.getEnabledActivityIds());
changed = enabledActivityIds.add(activityID); boolean changed = false;
else if (enableit)
changed = enabledActivityIds.remove(activityID); changed = enabledActivityIds.add(activityID);
if (changed) else
workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds); changed = enabledActivityIds.remove(activityID);
if (changed)
workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds);
}
});
} }
} }