public void closeAndClear() { this.open = false; add((T) CLEAR_PILL); }
@Override public void onNext(final T t) { Objects.requireNonNull(t); counter.added++; queue.add(t); }
@Test public void mergeAdapterTest() { for (int k = 0; k < ITERATIONS; k++) { Queue<Integer> queue = QueueFactories.<Integer>boundedNonBlockingQueue(10) .build(); Thread t = new Thread(() -> { queue.add(1); queue.add(2); queue.add(3); try { System.out.println("Sleeping!"); Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Waking!"); System.out.println("Closing! " + queue.size()); queue.close(); }); t.start(); assertThat(this.<Integer>of().peek(i -> System.out.println("publishing " + i)) .merge(queue).collect(Collectors.toList()), equalTo(Arrays.asList(1, 2, 3))); t = null; System.gc(); } }
@Test public void mergeAdapterTest1() { for (int k = 0; k < ITERATIONS; k++) { System.out.println("Test iteration " + k); Queue<Integer> queue = QueueFactories.<Integer>boundedNonBlockingQueue(10) .build(); Thread t = new Thread(() -> { queue.add(1); queue.add(2); queue.add(3); try { // System.out.println("Sleeping!"); Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } // System.out.println("Closing! " + queue.size()); queue.close(); }); t.start(); assertThat(this.<Integer>of(10).peek(i -> System.out.println("publishing " + i)) .merge(queue).collect(Collectors.toList()), hasItems(10, 1, 2, 3)); t = null; System.gc(); } }
public void closeAndClear() { this.open = false; add((T) CLEAR_PILL); }
@Override public void onNext(final T t) { Objects.requireNonNull(t); counter.added++; queue.add(t); }
default U add(final U value, final Queue<U> queue) { if (!queue.add(value)) throw new RuntimeException(); return value; } }
@Override public void onNext(final T t) { Objects.requireNonNull(t); counter.added++; queue.add(t); }