You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuweni.apache.org by to...@apache.org on 2019/05/09 23:27:34 UTC

[incubator-tuweni] branch master updated: Add some doc ; make sure to empty the queue of lazy tasks after they execute

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 <an...@lunar-ocean.com>
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: commits-unsubscribe@tuweni.apache.org
For additional commands, e-mail: commits-help@tuweni.apache.org