> + * a timeout. Also, when the reference is removed from this list and > when > + * the executorService removes the reference that it has maintained, > the > + * future will be marked for GC since there should be no other > references > + * to it. This is important because this code can generate an unbounded > + * number of futures. > + */ > + final List<AtomicReference<ListenableFuture<Void>>> outstandingFutures > = Collections > + .synchronizedList(new > ArrayList<AtomicReference<ListenableFuture<Void>>>()); > + while (retries > 0) { > + deleteFailure.set(false); > + executeOneIteration(containerName, listOptions.clone(), semaphore, > + outstandingFutures, deleteFailure); > + // Wait for all futures to complete by waiting to acquire all > + // semaphores. > + try { > + if (!semaphore.tryAcquire(numOutStandingRequests, maxTime,
These timeouts provide little value over the per-operation timouts and we may want to remove them in a subsequent commit. --- Reply to this email directly or view it on GitHub: https://github.com/jclouds/jclouds/pull/214/files#r10853876