mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-08-08 14:42:22 -04:00
stop when shutdown
This commit is contained in:
parent
6e1f92a05b
commit
5efd69bad4
2 changed files with 56 additions and 48 deletions
|
@ -28,6 +28,7 @@ public class PeerExchangeManager implements MessageListener, ConnectionListener
|
||||||
private final ScheduledThreadPoolExecutor executor;
|
private final ScheduledThreadPoolExecutor executor;
|
||||||
private final Map<NodeAddress, PeerExchangeHandshake> peerExchangeHandshakeMap = new HashMap<>();
|
private final Map<NodeAddress, PeerExchangeHandshake> peerExchangeHandshakeMap = new HashMap<>();
|
||||||
private Timer connectToMorePeersTimer, maintainConnectionsTimer;
|
private Timer connectToMorePeersTimer, maintainConnectionsTimer;
|
||||||
|
private boolean shutDownInProgress;
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -46,6 +47,7 @@ public class PeerExchangeManager implements MessageListener, ConnectionListener
|
||||||
|
|
||||||
public void shutDown() {
|
public void shutDown() {
|
||||||
Log.traceCall();
|
Log.traceCall();
|
||||||
|
shutDownInProgress = true;
|
||||||
|
|
||||||
networkNode.removeMessageListener(this);
|
networkNode.removeMessageListener(this);
|
||||||
stopConnectToMorePeersTimer();
|
stopConnectToMorePeersTimer();
|
||||||
|
@ -148,6 +150,7 @@ public class PeerExchangeManager implements MessageListener, ConnectionListener
|
||||||
|
|
||||||
peerExchangeHandshakeMap.remove(nodeAddress);
|
peerExchangeHandshakeMap.remove(nodeAddress);
|
||||||
peerManager.penalizeUnreachablePeer(nodeAddress);
|
peerManager.penalizeUnreachablePeer(nodeAddress);
|
||||||
|
if (!shutDownInProgress) {
|
||||||
if (!remainingNodeAddresses.isEmpty()) {
|
if (!remainingNodeAddresses.isEmpty()) {
|
||||||
log.info("There are remaining nodes available for requesting peers. " +
|
log.info("There are remaining nodes available for requesting peers. " +
|
||||||
"We will try getReportedPeers again.");
|
"We will try getReportedPeers again.");
|
||||||
|
@ -161,6 +164,7 @@ public class PeerExchangeManager implements MessageListener, ConnectionListener
|
||||||
PeerExchangeManager.this::connectToMorePeers, 20, 30);
|
PeerExchangeManager.this::connectToMorePeers, 20, 30);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
peerExchangeHandshakeMap.put(nodeAddress, peerExchangeHandshake);
|
peerExchangeHandshakeMap.put(nodeAddress, peerExchangeHandshake);
|
||||||
peerExchangeHandshake.requestReportedPeers(nodeAddress);
|
peerExchangeHandshake.requestReportedPeers(nodeAddress);
|
||||||
|
|
|
@ -52,6 +52,7 @@ public class RequestDataManager implements MessageListener {
|
||||||
private Optional<NodeAddress> nodeOfPreliminaryDataRequest = Optional.empty();
|
private Optional<NodeAddress> nodeOfPreliminaryDataRequest = Optional.empty();
|
||||||
private Timer requestDataTimer;
|
private Timer requestDataTimer;
|
||||||
private boolean dataUpdateRequested;
|
private boolean dataUpdateRequested;
|
||||||
|
private boolean shutDownInProgress;
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -72,6 +73,7 @@ public class RequestDataManager implements MessageListener {
|
||||||
|
|
||||||
public void shutDown() {
|
public void shutDown() {
|
||||||
Log.traceCall();
|
Log.traceCall();
|
||||||
|
shutDownInProgress = true;
|
||||||
stopRequestDataTimer();
|
stopRequestDataTimer();
|
||||||
networkNode.removeMessageListener(this);
|
networkNode.removeMessageListener(this);
|
||||||
requestDataHandshakeMap.values().stream().forEach(RequestDataHandshake::shutDown);
|
requestDataHandshakeMap.values().stream().forEach(RequestDataHandshake::shutDown);
|
||||||
|
@ -175,6 +177,7 @@ public class RequestDataManager implements MessageListener {
|
||||||
|
|
||||||
peerManager.penalizeUnreachablePeer(nodeAddress);
|
peerManager.penalizeUnreachablePeer(nodeAddress);
|
||||||
|
|
||||||
|
if (!shutDownInProgress) {
|
||||||
if (!remainingNodeAddresses.isEmpty()) {
|
if (!remainingNodeAddresses.isEmpty()) {
|
||||||
log.info("There are remaining nodes available for requesting data. " +
|
log.info("There are remaining nodes available for requesting data. " +
|
||||||
"We will try requestDataFromPeers again.");
|
"We will try requestDataFromPeers again.");
|
||||||
|
@ -217,6 +220,7 @@ public class RequestDataManager implements MessageListener {
|
||||||
listener.onNoPeersAvailable();
|
listener.onNoPeersAvailable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
requestDataHandshakeMap.put(nodeAddress, requestDataHandshake);
|
requestDataHandshakeMap.put(nodeAddress, requestDataHandshake);
|
||||||
requestDataHandshake.requestData(nodeAddress);
|
requestDataHandshake.requestData(nodeAddress);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue