Module java.base
Package java.util.concurrent

## Interface Flow.Subscription

- Enclosing class:
    Flow

      public static interface Flow.Subscription

  Message control linking a `Flow.Publisher` and `Flow.Subscriber`. Subscribers receive items only when requested, and may cancel at any time. The methods in this interface are intended to be invoked only by their Subscribers; usages in other contexts have undefined effects.

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `cancel()` | Causes the Subscriber to (eventually) stop receiving messages.
    `void` | `request​(long n)` | Adds the given number `n` of items to the current unfulfilled demand for this subscription.

- - ### Method Detail

    - #### request

          void request​(long n)

      Adds the given number `n` of items to the current unfulfilled demand for this subscription. If `n` is less than or equal to zero, the Subscriber will receive an `onError` signal with an `IllegalArgumentException` argument. Otherwise, the Subscriber will receive up to `n` additional `onNext` invocations (or fewer if terminated).
      Parameters:
        `n` - the increment of demand; a value of `Long.MAX_VALUE` may be considered as effectively unbounded

    - #### cancel

          void cancel()

      Causes the Subscriber to (eventually) stop receiving messages. Implementation is best-effort -- additional messages may be received after invoking this method. A cancelled subscription need not ever receive an `onComplete` or `onError` signal.