public void run() {
   while (numActiveWorkers.get() != 0) {
     try {
       List<SimilarItems> similarItemsOfABatch = results.poll(10, TimeUnit.MILLISECONDS);
       if (similarItemsOfABatch != null) {
         foreach (SimilarItems similarItems in similarItemsOfABatch) {
           writer.add(similarItems);
           numSimilaritiesProcessed += similarItems.numSimilarItems();
         }
       }
     } catch (Exception e) {
       throw new RuntimeException(e);
     }
   }
 }