Package rx.internal.producers
Class ProducerArbiter
java.lang.Object
rx.internal.producers.ProducerArbiter
- All Implemented Interfaces:
Producer
Producer that allows changing an underlying producer atomically and correctly resume with the accumulated
requests.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidemitLoop()voidproduced(long n) voidrequest(long n) Request a certain maximum number of items from this Producer.voidsetProducer(Producer newProducer)
-
Field Details
-
Constructor Details
-
ProducerArbiter
public ProducerArbiter()
-
-
Method Details
-
request
public void request(long n) Description copied from interface:ProducerRequest a certain maximum number of items from this Producer. This is a way of requesting backpressure. To disable backpressure, passLong.MAX_VALUEto this method.Requests are additive but if a sequence of requests totals more than
Long.MAX_VALUEthenLong.MAX_VALUErequests will be actioned and the extras may be ignored. Arriving atLong.MAX_VALUEby addition of requests cannot be assumed to disable backpressure. For example, the code below may result inLong.MAX_VALUErequests being actioned only.request(100); request(Long.MAX_VALUE-1);
-
produced
public void produced(long n) -
setProducer
-
emitLoop
public void emitLoop()
-