public interface Producer
The request amount only affects calls to Observer.onNext(Object)
; onError and onCompleted may appear without
requests.
However, backpressure is somewhat optional in RxJava 1.x and Subscribers may not
receive a Producer via their Subscriber.setProducer(Producer)
method and will run
in unbounded mode. Depending on the chain of operators, this can lead to MissingBackpressureException
.
Modifier and Type | Method and Description |
---|---|
void |
request(long n)
Request a certain maximum number of items from this Producer.
|
void request(long n)
Long.MAX_VALUE
to this method.
Requests are additive but if a sequence of requests totals more than Long.MAX_VALUE
then
Long.MAX_VALUE
requests will be actioned and the extras may be ignored. Arriving at
Long.MAX_VALUE
by addition of requests cannot be assumed to disable backpressure. For example,
the code below may result in Long.MAX_VALUE
requests being actioned only.
request(100); request(Long.MAX_VALUE-1);
n
- the maximum number of items you want this Producer to produce, or Long.MAX_VALUE
if you
want the Producer to produce items at its own pacejava.lang.IllegalArgumentException
- if the request amount is negative