Heya Daniel, 750 /** 751 * same as above but for errors 752 */ 753 void completeResponseExceptionally(Throwable t) { 754 synchronized (response_cfs) { 755 // use index to avoid ConcurrentModificationException 756 // caused by removing the CF from within the loop. 757 for (int i = 0; i < response_cfs.size(); i++) { 758 CompletableFuture<Response> cf = response_cfs.get(i); 759 if (!cf.isDone()) { 760 cf.completeExceptionally(t); 761 response_cfs.remove(i); 762 return; 763 } 764 } 765 response_cfs.add(MinimalFuture.failedFuture(t)); 766 } 767 }
I was wondering if @762 should be there in the first place. The logic seems a bit odd: find the first CF that hasn't been yet completed, complete it and return. Are we guaranteed there are no other not-yet-completed CFs in this list? Or we simply do not care about it? Thanks.