From 00da963bbb1b86ea54810ddb1c46a44253086959 Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Sat, 13 Jul 2013 02:24:19 +0200 Subject: [PATCH] Payment channels: use daemon threads so the VM can exit after the state objects are created. --- .../StoredPaymentChannelClientStates.java | 17 ++++++++--------- .../StoredPaymentChannelServerStates.java | 15 ++++++--------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelClientStates.java b/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelClientStates.java index bc015139..bcd1f343 100644 --- a/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelClientStates.java +++ b/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelClientStates.java @@ -16,14 +16,6 @@ package com.google.bitcoin.protocols.channels; -import java.io.*; -import java.math.BigInteger; -import java.util.Date; -import java.util.Set; -import java.util.Timer; -import java.util.TimerTask; -import java.util.concurrent.locks.ReentrantLock; - import com.google.bitcoin.core.*; import com.google.bitcoin.utils.Threading; import com.google.common.annotations.VisibleForTesting; @@ -31,6 +23,13 @@ import com.google.common.collect.HashMultimap; import com.google.protobuf.ByteString; import net.jcip.annotations.GuardedBy; +import java.math.BigInteger; +import java.util.Date; +import java.util.Set; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.locks.ReentrantLock; + import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; @@ -42,7 +41,7 @@ public class StoredPaymentChannelClientStates implements WalletExtension { static final String EXTENSION_ID = StoredPaymentChannelClientStates.class.getName(); @GuardedBy("lock") @VisibleForTesting final HashMultimap mapChannels = HashMultimap.create(); - @VisibleForTesting final Timer channelTimeoutHandler = new Timer(); + @VisibleForTesting final Timer channelTimeoutHandler = new Timer(true); private Wallet containingWallet; private final TransactionBroadcaster announcePeerGroup; diff --git a/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelServerStates.java b/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelServerStates.java index f876f469..bb81608c 100644 --- a/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelServerStates.java +++ b/core/src/main/java/com/google/bitcoin/protocols/channels/StoredPaymentChannelServerStates.java @@ -16,20 +16,17 @@ package com.google.bitcoin.protocols.channels; -import java.io.*; -import java.math.BigInteger; -import java.util.*; -import java.util.concurrent.locks.ReentrantLock; - import com.google.bitcoin.core.*; import com.google.bitcoin.utils.Threading; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.ByteString; import net.jcip.annotations.GuardedBy; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; +import java.math.BigInteger; +import java.util.*; +import java.util.concurrent.locks.ReentrantLock; + +import static com.google.common.base.Preconditions.*; /** * Keeps track of a set of {@link StoredServerChannel}s and expires them 2 hours before their refund transactions @@ -42,7 +39,7 @@ public class StoredPaymentChannelServerStates implements WalletExtension { private final Wallet wallet; private final TransactionBroadcaster broadcaster; - private final Timer channelTimeoutHandler = new Timer(); + private final Timer channelTimeoutHandler = new Timer(true); private final ReentrantLock lock = Threading.lock("StoredPaymentChannelServerStates");