public boolean hasNext()

in src/main/java/com/twitter/whiskey/futures/ReactiveFuture.java [208:230]


        public boolean hasNext() {

            if ((drained != null && drained.hasNext()) || (currentElement != null && currentElement != SENTINEL)) {
                return true;
            }

            if (isDone() && queue.isEmpty()) return false;

            synchronized(ReactiveFuture.this) {
                if (isDone() && queue.isEmpty()) return false;
            }

            try {
                currentElement = queue.take();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }

            if (currentElement != SENTINEL) return true;
            if (error != null) throw new RuntimeException(error);

            return false;
        }