> + * 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