Interface ForcedDrainable

All Superinterfaces:
Drainable

public interface ForcedDrainable extends Drainable
Indicates connection pools and similar data structures which have a means of waiting for resources to close/clean up and additionally support a more aggressive form of draining which attempts to forcibly release the underlying resources.
  • Method Details

    • forceDrain

      boolean forceDrain(long timeout, @Nonnull TimeUnit unit)
      A more aggressive form of Drainable.drain(long, java.util.concurrent.TimeUnit). If after the supplied timeout the underlying resources are not free then this object will take additional steps to ensure they are free. Callers are advised to first drain before forcing to minimise adverse effects from this more aggressive approach.

      Note that this method is not guaranteed to succeed and the caller must take care to handle the possibility that some or all of the underlying resources may still be in use after this method returns.

      Parameters:
      timeout - the timeout which, using the specified unit, will be converted to milliseconds
      unit - the unit the provided timeout is in
      Returns:
      true if the pool was drained; otherwise, false if 1 or more resources could not be accounted for or forced within the specified timeout