From 8e58839d81a1f9237f56296f38a854832d0d8665 Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Wed, 15 Jan 2014 01:56:07 +0100 Subject: [PATCH] Wallet: Short-circuit runnable creation if executor is SAME_THREAD --- .../java/com/google/bitcoin/core/Wallet.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/google/bitcoin/core/Wallet.java b/core/src/main/java/com/google/bitcoin/core/Wallet.java index 083173fa..f0f78761 100644 --- a/core/src/main/java/com/google/bitcoin/core/Wallet.java +++ b/core/src/main/java/com/google/bitcoin/core/Wallet.java @@ -3229,12 +3229,16 @@ public class Wallet implements Serializable, BlockChainListener, PeerFilterProvi private void queueOnTransactionConfidenceChanged(final Transaction tx) { checkState(lock.isHeldByCurrentThread()); for (final ListenerRegistration registration : eventListeners) { - registration.executor.execute(new Runnable() { - @Override - public void run() { - registration.listener.onTransactionConfidenceChanged(Wallet.this, tx); - } - }); + if (registration.executor == Threading.SAME_THREAD) { + registration.listener.onTransactionConfidenceChanged(this, tx); + } else { + registration.executor.execute(new Runnable() { + @Override + public void run() { + registration.listener.onTransactionConfidenceChanged(Wallet.this, tx); + } + }); + } } }