Commit graph

7 commits

Author SHA1 Message Date
Roland Kuhn
289c03d1a1 !str move to SingleStreamProcessors.scala 2014-04-16 17:11:52 +02:00
Roland Kuhn
2ab574bab6 !str remove now unused AbstractProducer 2014-04-16 17:11:23 +02:00
Roland Kuhn
659eff725a !str add ActorProducer and fix FanOutBox
The ActorProducer is an actor-based Publisher which runs a thunk of code
until Stop is thrown. This means that completion is only signaled if
demand is present for one more element, which makes sense and it legal
according to the wording of the spec. The TCK was too strict in this
regard and has been relaxed.

Things would have “worked” without the relaxation if I had not also
fixed the output buffer management. SubscriptionManagement in
collaboration with the ResizableMultiReaderRingBuffer previously
generated demand on its own, acting like a true buffer. This is
undesired since we want to auto-tune the input buffers, which would get
a lot more complicated and instable with autonomously buffering output
stages in the mix.

Removing this extra-buffering uncovered several places in the test suite
which implicitly relied on this, which were fixed as well.
2014-04-16 17:10:59 +02:00
Roland Kuhn
606ec5fae8 !str rename mapSeq to mapConcat 2014-04-16 17:10:16 +02:00
Roland Kuhn
c8f462d6e6 !str rename SPI/TCK to org.reactivestreams 2014-04-16 17:10:10 +02:00
Patrik Nordwall
156b661bfc !str Add tests 2014-04-16 17:10:02 +02:00
Roland Kuhn
4a9f16f437 !str step 1: add impl part that compiles 2014-04-16 17:09:46 +02:00