diff --git a/modules/WeightedBridgingCentrality/pom.xml b/modules/WeightedBridgingCentrality/pom.xml index 0c7f9e2f3..b986f4e70 100644 --- a/modules/WeightedBridgingCentrality/pom.xml +++ b/modules/WeightedBridgingCentrality/pom.xml @@ -9,7 +9,7 @@ com.nathansteinmeyer weighted-bridging-centrality - 1.0.0 + 1.0.1 nbm Weighted Bridging Centrality diff --git a/modules/WeightedBridgingCentrality/src/main/java/com/nathansteinmeyer/weightedbridgingcentrality/WeightedBridgingCentralityMetric.java b/modules/WeightedBridgingCentrality/src/main/java/com/nathansteinmeyer/weightedbridgingcentrality/WeightedBridgingCentralityMetric.java index 10994a857..86952346f 100644 --- a/modules/WeightedBridgingCentrality/src/main/java/com/nathansteinmeyer/weightedbridgingcentrality/WeightedBridgingCentralityMetric.java +++ b/modules/WeightedBridgingCentrality/src/main/java/com/nathansteinmeyer/weightedbridgingcentrality/WeightedBridgingCentralityMetric.java @@ -193,7 +193,8 @@ private double[] calculateBetweeness(Graph graph, HashMap indicie Progress.start(progressTicket, Number_of_Nodes); //Weighted shortest-path search to calculate all shortest paths from node s to t - for (Node s : graph.getNodes()) { + NodeIterable nodeIterable = graph.getNodes(); + for (Node s : nodeIterable) { //The below structures are candidates to performance improvments: //Creates a stack for each node, ... Stack S = new Stack(); @@ -298,6 +299,8 @@ private double[] calculateBetweeness(Graph graph, HashMap indicie count++; if (cancelled) { + // Leaving the loop early keeps the graph read-locked unless the iterable is told + nodeIterable.doBreak(); return nodeBetweenness; }