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

Reply via email to