This is an automated email from the ASF dual-hosted git repository.
toulmean pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
The following commit(s) were added to refs/heads/master by this push:
new 963990d Add some doc ; make sure to empty the queue of lazy tasks
after they execute
new 3041496 Merge pull request #13 from atoulme/plumtree_clear_queue
963990d is described below
commit 963990d85fa1c7177bb6ac6f97e34579a0b2df0e
Author: Antoine Toulme <[email protected]>
AuthorDate: Mon May 6 23:27:22 2019 -0700
Add some doc ; make sure to empty the queue of lazy tasks after they execute
---
.../java/org/apache/tuweni/plumtree/EphemeralPeerRepository.java | 5 ++++-
plumtree/src/main/java/org/apache/tuweni/plumtree/State.java | 5 ++++-
plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java | 2 +-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git
a/plumtree/src/main/java/org/apache/tuweni/plumtree/EphemeralPeerRepository.java
b/plumtree/src/main/java/org/apache/tuweni/plumtree/EphemeralPeerRepository.java
index acbdeec..7d0f4f7 100644
---
a/plumtree/src/main/java/org/apache/tuweni/plumtree/EphemeralPeerRepository.java
+++
b/plumtree/src/main/java/org/apache/tuweni/plumtree/EphemeralPeerRepository.java
@@ -18,7 +18,10 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-public class EphemeralPeerRepository implements PeerRepository {
+/**
+ * In-memory peer repository.
+ */
+public final class EphemeralPeerRepository implements PeerRepository {
private final Set<Peer> eagerPushPeers = ConcurrentHashMap.newKeySet();
private final Set<Peer> lazyPushPeers = ConcurrentHashMap.newKeySet();
diff --git a/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java
b/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java
index 7151a45..26832ad 100644
--- a/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java
+++ b/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java
@@ -48,7 +48,7 @@ public final class State {
private final MessageSender messageSender;
private final Consumer<Bytes> messageListener;
private final MessageValidator messageValidator;
- private final Queue<Runnable> lazyQueue = new ConcurrentLinkedQueue<>();
+ final Queue<Runnable> lazyQueue = new ConcurrentLinkedQueue<>();
private final Timer timer = new Timer("plumtree", true);
private final long delay;
@@ -260,9 +260,12 @@ public final class State {
}
void processQueue() {
+ List<Runnable> executed = new ArrayList<>();
for (Runnable r : lazyQueue) {
r.run();
+ executed.add(r);
}
+ lazyQueue.removeAll(executed);
}
/**
diff --git a/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java
b/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java
index 5c03da3..b171ee8 100644
--- a/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java
+++ b/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java
@@ -48,7 +48,6 @@ class StateTest {
this.peer = peer;
this.hash = hash;
this.payload = payload;
-
}
}
@@ -167,6 +166,7 @@ class StateTest {
assertEquals(Hash.keccak256(msg), messageSender.hash);
assertEquals(lazyPeer, messageSender.peer);
assertEquals(MessageSender.Verb.IHAVE, messageSender.verb);
+ assertTrue(state.lazyQueue.isEmpty());
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]