Iterable<AsyncPromise<Node>> (T command) { ArrayList<AsyncPromise<Node>> list = new ArrayList<>(); while (true) { T last = deque.pollLast(); if (last == null) break; if (last.isPending()) list.add(last.promise); if (last.equals(command)) break; } return list; }