A delivery sink which buffers deliveries sent to it up to it's
maxSize settings after which it starts flow controlling the sender.
It executes the drainer when it has queued values. The drainer
should call poll to get the queued values and then ack the values
once they have been processed to allow additional values to be accepted.
The refiller is executed once the the queue is drained.
This class should only be called from a single serial dispatch queue.
Attempts to add a value to the sink. If the sink is full,
this method will typically return false. The caller should
try to offer the value again once the refiller is exectuted.
A delivery sink which buffers deliveries sent to it up to it's maxSize settings after which it starts flow controlling the sender.
It executes the drainer when it has queued values. The drainer should call poll to get the queued values and then ack the values once they have been processed to allow additional values to be accepted. The refiller is executed once the the queue is drained.
This class should only be called from a single serial dispatch queue.