aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2009-06-09 15:38:45 -0700
committerXavier Ducrohet <xav@android.com>2009-06-09 15:38:45 -0700
commitfcec871e4a014f32b4ee7a18d3aec784554bebd6 (patch)
tree9bd78f5696d5085f542a0c3e29b61a3fdea0adc0 /eclipse
parent56237b395f84a569ddc6e7f666174e2a6b1e7ebf (diff)
downloadsdk-fcec871e4a014f32b4ee7a18d3aec784554bebd6.zip
sdk-fcec871e4a014f32b4ee7a18d3aec784554bebd6.tar.gz
sdk-fcec871e4a014f32b4ee7a18d3aec784554bebd6.tar.bz2
Use the same lock for Sdk class than the one used for loading the SDK.
This will prevent deadlocks when launching Eclipse.
Diffstat (limited to 'eclipse')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java22
1 files changed, 13 insertions, 9 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
index 1f3cdb3..0fe592a 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
@@ -192,7 +192,7 @@ public class Sdk implements IProjectListener {
*/
public void setProject(IProject project, IAndroidTarget target,
Map<String, String> apkConfigMap) {
- synchronized (mProjectTargetMap) {
+ synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
boolean resolveProject = false;
boolean compileProject = false;
boolean cleanProject = false;
@@ -270,7 +270,7 @@ public class Sdk implements IProjectListener {
* Returns the {@link IAndroidTarget} object associated with the given {@link IProject}.
*/
public IAndroidTarget getTarget(IProject project) {
- synchronized (mProjectTargetMap) {
+ synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
IAndroidTarget target = mProjectTargetMap.get(project);
if (target == null) {
// get the value from the project persistent property.
@@ -313,10 +313,12 @@ public class Sdk implements IProjectListener {
}
if (sdkStorage != null) {
- Map<String, String> configMap = ApkConfigurationHelper.getConfigs(properties);
+ synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
+ Map<String, String> configMap = ApkConfigurationHelper.getConfigs(properties);
- if (configMap != null) {
- sdkStorage.mProjectApkConfigMap.put(project, configMap);
+ if (configMap != null) {
+ sdkStorage.mProjectApkConfigMap.put(project, configMap);
+ }
}
}
@@ -368,7 +370,7 @@ public class Sdk implements IProjectListener {
* Return the {@link AndroidTargetData} for a given {@link IAndroidTarget}.
*/
public AndroidTargetData getTargetData(IAndroidTarget target) {
- synchronized (mTargetDataMap) {
+ synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
return mTargetDataMap.get(target);
}
}
@@ -379,7 +381,9 @@ public class Sdk implements IProjectListener {
* config values. The config value can be passed directly to aapt through the -c option.
*/
public Map<String, String> getProjectApkConfigs(IProject project) {
- return mProjectApkConfigMap.get(project);
+ synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
+ return mProjectApkConfigMap.get(project);
+ }
}
/**
@@ -411,7 +415,7 @@ public class Sdk implements IProjectListener {
}
void setTargetData(IAndroidTarget target, AndroidTargetData data) {
- synchronized (mTargetDataMap) {
+ synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
mTargetDataMap.put(target, data);
}
}
@@ -455,7 +459,7 @@ public class Sdk implements IProjectListener {
public void projectClosed(IProject project) {
// get the target project
- synchronized (mProjectTargetMap) {
+ synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
IAndroidTarget target = mProjectTargetMap.get(project);
if (target != null) {
// get the bridge for the target, and clear the cache for this project.