From 7eb5cd55ff5c38f05749d3a21976359aba9db4cb Mon Sep 17 00:00:00 2001 From: catbref Date: Tue, 2 Jul 2019 15:41:23 +0100 Subject: [PATCH] Faster shutdown for Peers doing PROOF part of handshake --- src/main/java/org/qora/network/Peer.java | 7 ++++++- src/main/java/org/qora/network/Proof.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/qora/network/Peer.java b/src/main/java/org/qora/network/Peer.java index 5e530d18..d16c2cc5 100644 --- a/src/main/java/org/qora/network/Peer.java +++ b/src/main/java/org/qora/network/Peer.java @@ -127,6 +127,10 @@ public class Peer extends Thread { // Getters / setters + public boolean isStopping() { + return this.isStopping; + } + public PeerData getPeerData() { return this.peerData; } @@ -500,7 +504,7 @@ public class Peer extends Thread { } public void shutdown() { - LOGGER.debug(String.format("Shutting down peer %s", this)); + LOGGER.debug(() -> String.format("Shutting down peer %s", this)); this.isStopping = true; // Shut down pinger @@ -525,6 +529,7 @@ public class Peer extends Thread { } } + LOGGER.debug(() -> String.format("Interrupting peer %s", this)); this.interrupt(); // Close socket, which should trigger run() to exit diff --git a/src/main/java/org/qora/network/Proof.java b/src/main/java/org/qora/network/Proof.java index d936a9c4..db4b035e 100644 --- a/src/main/java/org/qora/network/Proof.java +++ b/src/main/java/org/qora/network/Proof.java @@ -64,7 +64,7 @@ public class Proof extends Thread { long nonce; for (nonce = 0; nonce < Long.MAX_VALUE; ++nonce) { // Check whether we're shutting down every so often - if ((nonce & 0xff) == 0 && Thread.currentThread().isInterrupted()) + if ((nonce & 0xff) == 0 && (peer.isStopping() || Thread.currentThread().isInterrupted())) // throw new InterruptedException("Interrupted during peer proof calculation"); return;