move setPercentUsage() out of synchronized blocks to prevent a deadlock in the journal

persistence adaptor

git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@439837 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Davies 2006-09-03 19:22:12 +00:00
parent a7891c3dca
commit e78edb1ea7
1 changed files with 13 additions and 5 deletions

View File

@ -103,10 +103,12 @@ public class UsageManager {
return;
if(parent!=null)
parent.increaseUsage(value);
int percentUsage;
synchronized(usageMutex) {
usage+=value;
setPercentUsage(caclPercentUsage());
percentUsage = caclPercentUsage();
}
setPercentUsage(percentUsage);
}
/**
@ -119,10 +121,12 @@ public class UsageManager {
return;
if(parent!=null)
parent.decreaseUsage(value);
int percentUsage;
synchronized(usageMutex) {
usage-=value;
setPercentUsage(caclPercentUsage());
percentUsage = caclPercentUsage();
}
setPercentUsage(percentUsage);
}
public boolean isFull() {
@ -153,10 +157,12 @@ public class UsageManager {
if(percentUsageMinDelta < 0 ) {
throw new IllegalArgumentException("percentUsageMinDelta must be greater or equal to 0");
}
int percentUsage;
synchronized (usageMutex) {
this.limit = limit;
setPercentUsage(caclPercentUsage());
percentUsage = caclPercentUsage();
}
setPercentUsage(percentUsage);
}
/**
@ -199,10 +205,12 @@ public class UsageManager {
if(percentUsageMinDelta < 1) {
throw new IllegalArgumentException("percentUsageMinDelta must be greater than 0");
}
int percentUsage;
synchronized (usageMutex) {
this.percentUsageMinDelta = percentUsageMinDelta;
setPercentUsage(caclPercentUsage());
}
percentUsage = caclPercentUsage();
}
setPercentUsage(percentUsage);
}
public long getUsage() {