1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 02:36:01 +02:00

Update loadExtensionsSynchronized to handle issue with setting the 'loaded' flag too early

This commit is contained in:
Leo Treggiari 2005-12-29 15:10:52 +00:00
parent f91558ee2f
commit c8b246f974

View file

@ -138,6 +138,7 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
private static final PluginVersionIdentifier buildInfoVersion = new PluginVersionIdentifier(3, 0, 0);
private static Map depCalculatorsMap;
private static boolean projectTypesLoaded = false;
private static boolean projectTypesLoading = false;
// Project types defined in the manifest files
public static SortedMap projectTypeMap;
private static List projectTypes;
@ -1763,7 +1764,11 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
// Do this once
if (projectTypesLoaded)
return;
projectTypesLoaded = true;
// This routine gets called recursively. If so, just return
if (projectTypesLoading)
return;
projectTypesLoading = true;
// Get the extensions that use the current CDT managed build model
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT_ID);
@ -2031,6 +2036,8 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
}
performAdjustments();
projectTypesLoading = false;
projectTypesLoaded = true;
}
private static void performAdjustments(){