@Override
	public List<E> search(String query, int count, Decoder<E> statusDecoder) {
		final int pages = (count + 99) / 100;
		
		Search<E> search = new Search<>(twitter, REG_MAX_ID, query, statusDecoder);
		Term term = new Term();
		
		for (int page = 0; page < pages; page++) {
			processor.schedule(search, PRIMARY);
		}
		processor.schedule(term, PRIMARY);
		
		while (!term.isTerminated()) {
			try {
				TimeUnit.SECONDS.sleep(5L);
			} catch (InterruptedException e) {
				break;
			}
		}
		
		List<E> resultList = search.getResultList();
		if (resultList.size() > count) {
			return resultList.subList(0, count);
		} else {
			return resultList;
		}
	}