From 92398d2c47706c80d3802e66a8fd0fd915bfb2a5 Mon Sep 17 00:00:00 2001 From: Miron Cuperman Date: Mon, 26 Mar 2012 12:15:44 -0700 Subject: [PATCH] Check whether Peer should stop after each message. Buffering could cause a delay in stopping if we only depend on socket being closed. Resolves issue 161. --- core/src/main/java/com/google/bitcoin/core/Peer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/google/bitcoin/core/Peer.java b/core/src/main/java/com/google/bitcoin/core/Peer.java index 184a87be..544d7fc0 100644 --- a/core/src/main/java/com/google/bitcoin/core/Peer.java +++ b/core/src/main/java/com/google/bitcoin/core/Peer.java @@ -42,7 +42,7 @@ public class Peer { private final NetworkParameters params; // Whether the peer loop is supposed to be running or not. Set to false during shutdown so the peer loop // knows to quit when the socket goes away. - private boolean running; + private volatile boolean running; private final BlockChain blockChain; // When an API user explicitly requests a block or transaction from a peer, the InventoryItem is put here // whilst waiting for the response. Synchronized on itself. Is not used for downloads Peer generates itself. @@ -182,7 +182,7 @@ public class Peer { running = true; try { - while (true) { + while (running) { Message m = conn.readMessage(); // Allow event listeners to filter the message stream. Listeners are allowed to drop messages by