mirror of
https://github.com/Qortal/altcoinj.git
synced 2025-02-07 14:54:15 +00:00
Orchid: narrower locking
This commit is contained in:
parent
41731c3261
commit
ddfaebd487
@ -104,15 +104,19 @@ public class CircuitManagerImpl implements CircuitManager, DashboardRenderable {
|
||||
try {
|
||||
isBuilding = false;
|
||||
scheduledExecutor.shutdownNow();
|
||||
if (killCircuits) {
|
||||
List<CircuitImpl> circuits = new ArrayList<CircuitImpl>(activeCircuits);
|
||||
for (CircuitImpl c : circuits) {
|
||||
c.destroyCircuit();
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
if (killCircuits) {
|
||||
ArrayList<CircuitImpl> circuits;
|
||||
synchronized (activeCircuits) {
|
||||
circuits = new ArrayList<CircuitImpl>(activeCircuits);
|
||||
}
|
||||
for (CircuitImpl c : circuits) {
|
||||
c.destroyCircuit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ExitCircuit createNewExitCircuit(Router exitRouter) {
|
||||
@ -125,15 +129,18 @@ public class CircuitManagerImpl implements CircuitManager, DashboardRenderable {
|
||||
activeCircuits.notifyAll();
|
||||
}
|
||||
|
||||
boolean doDestroy;
|
||||
lock.lock();
|
||||
try {
|
||||
if (!isBuilding) {
|
||||
// we were asked to stop since this circuit was started
|
||||
circuit.destroyCircuit();
|
||||
}
|
||||
doDestroy = !isBuilding;
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
if (doDestroy) {
|
||||
// we were asked to stop since this circuit was started
|
||||
circuit.destroyCircuit();
|
||||
}
|
||||
}
|
||||
|
||||
void removeActiveCircuit(CircuitImpl circuit) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user