Created
April 3, 2014 17:44
-
-
Save posix4e/9959153 to your computer and use it in GitHub Desktop.
broken source
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/main/java/org/jetlang/core/BatchExecutorImpl.java b/src/main/java/org/jetlang/core/BatchExecutorImpl.java | |
index 4efdb48..45bd8b7 100644 | |
--- a/src/main/java/org/jetlang/core/BatchExecutorImpl.java | |
+++ b/src/main/java/org/jetlang/core/BatchExecutorImpl.java | |
@@ -1,5 +1,7 @@ | |
package org.jetlang.core; | |
+import java.util.Iterator; | |
+ | |
/** | |
* Default implementation that simply executes all events. | |
* | |
@@ -7,8 +9,9 @@ package org.jetlang.core; | |
*/ | |
public class BatchExecutorImpl implements BatchExecutor { | |
public void execute(EventReader toExecute) { | |
- for (int i = 0; i < toExecute.size(); i++) { | |
- toExecute.get(i).run(); | |
+ Iterator<Runnable> iterator = toExecute.iterator(); | |
+ while(iterator.hasNext()){ | |
+ iterator.next().run(); | |
} | |
} | |
} | |
diff --git a/src/main/java/org/jetlang/core/EventReader.java b/src/main/java/org/jetlang/core/EventReader.java | |
index 85cd6a9..57833a4 100644 | |
--- a/src/main/java/org/jetlang/core/EventReader.java | |
+++ b/src/main/java/org/jetlang/core/EventReader.java | |
@@ -1,5 +1,7 @@ | |
package org.jetlang.core; | |
+import java.util.Iterator; | |
+ | |
public interface EventReader extends MessageReader<Runnable> { | |
- Runnable get(int index); | |
+ Iterator<Runnable> iterator(); | |
} | |
diff --git a/src/main/java/org/jetlang/core/MessageBuffer.java b/src/main/java/org/jetlang/core/MessageBuffer.java | |
index c2d46ef..41020ef 100644 | |
--- a/src/main/java/org/jetlang/core/MessageBuffer.java | |
+++ b/src/main/java/org/jetlang/core/MessageBuffer.java | |
@@ -1,16 +1,20 @@ | |
package org.jetlang.core; | |
+import com.sun.jmx.remote.internal.ArrayQueue; | |
+ | |
+import java.util.ArrayDeque; | |
import java.util.ArrayList; | |
+import java.util.Iterator; | |
public class MessageBuffer<T> implements MessageReader<T> { | |
- private ArrayList<T> events = new ArrayList<T>(); | |
+ private ArrayDeque<T> events = new ArrayDeque<T>(); | |
public int size() { | |
return events.size(); | |
} | |
- public T get(int index) { | |
- return events.get(index); | |
+ public Iterator<T> iterator() { | |
+ return events.descendingIterator(); | |
} | |
public void add(T r) { | |
diff --git a/src/main/java/org/jetlang/core/MessageReader.java b/src/main/java/org/jetlang/core/MessageReader.java | |
index 4171a8e..965cef0 100644 | |
--- a/src/main/java/org/jetlang/core/MessageReader.java | |
+++ b/src/main/java/org/jetlang/core/MessageReader.java | |
@@ -1,9 +1,10 @@ | |
package org.jetlang.core; | |
+import java.util.Iterator; | |
+ | |
public interface MessageReader<T> { | |
int size(); | |
- T get(int index); | |
- | |
+ Iterator<T> iterator(); | |
} | |
diff --git a/src/test/java/org/jetlang/channels/LockFreeBatchSubscriberPerf.java b/src/test/java/org/jetlang/channels/LockFreeBatchSubscriberPerf.java | |
index 8f75205..5a1046b 100644 | |
--- a/src/test/java/org/jetlang/channels/LockFreeBatchSubscriberPerf.java | |
+++ b/src/test/java/org/jetlang/channels/LockFreeBatchSubscriberPerf.java | |
@@ -4,6 +4,7 @@ import org.jetlang.core.Callback; | |
import org.jetlang.core.MessageReader; | |
import org.jetlang.fibers.ThreadFiber; | |
+import java.util.Iterator; | |
import java.util.List; | |
import java.util.concurrent.ConcurrentLinkedQueue; | |
import java.util.concurrent.CountDownLatch; | |
@@ -47,8 +48,9 @@ public class LockFreeBatchSubscriberPerf { | |
int count = 0; | |
public void onMessage(MessageReader<String> message) { | |
- for (int val = 0; val < message.size(); val++) { | |
- String m = message.get(val); | |
+ Iterator<String> iterator = message.iterator(); | |
+ while(iterator.hasNext()){ | |
+ String m = iterator.next(); | |
count++; | |
} | |
if (count >= total) { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment