* This is an optimization of TcpStreamLogic to accumulating bytes in a buffer while waiting for
acknoledgment of pending write. This improves throughput for small messages (frames)
without sacrificing latency. While waiting for the ack the stage will eagerly pull
from upstream until the buffer limit is exceeded. Accumulated bytes are written
immediately when ack is received.
* Noticed 20x throughput improvement with Artery MaxThroughputSpec thanks to this buffer
when working on the Artery TCP implementation. The small message (100 bytes) benchmark
improved from 30k msg/s to 600k msg/s.
Fixes#23921
Ensures that when an erroneous invocation of a method on `SubSink` or
`SubSource` (eg, push when not allowed), that the source of the
invocation can more easily be identified. Since the invocations on these
are generally through async callbacks, the stack trace can't be used to
help, hence why the name of the inlet/outlet (which will be included in
the error message) is so important.
* overloaded methods added for binary compatibility
* Doc improve: remove unnecessary example, reword eagerClose description
* Test eagerClose = true when other stream closed
* =jdk9,str JDK9 ready classes, in special directories
* =str,jdk9 prepare for releasing using JDK9 (needs sbt 1.0+ though)
* =str,jdk9 passing TCK spec touching some JDK9 types internally
* make sure to include linting options
* =str move non-boilerplaty shapes out of templates
This will improve code navigation for those classes.
- FanInShape, FanInShape1N, UniformFanInShape
- FanOutShape, UniformFanOutShape
* =str deprecate FanInShape1N
It was not tested, used or documented anywhere. With one input of type T0,
n inputs of type T1 and one output of type O, it is also arguably not
particularly generic to warrant its inclusion.
* !str remove unnecessary copyFromPorts implementation in Fan{In,Out}Shape
Strictly speaking this is a binary incompatible change. It would only affect
users that explicitly called `copyFromPorts` (but for what reason?).
* =str #23636 fix deprecation message not to use backticks
Backticks break genjavadoc / unidoc.
Fixes#23636.
* add+use UniformFanOutShape#outSeq for consistency
UniformFanInShape has inSeq, whereas UniformFanOutShape has outArray.
There's probably no good reason for this discrepancy.
* 2.5.3 is gold, deprecation would start in 2.5.4
* specialize in/outlets where possible
* review comments, binary compatibility
* optimize imports
* use Array copy internally
* give FanInShape1N the deprecation treatment
also, s/T\d/I\d/g
* delete ignored file
* process additional review comments
* make inArray fully private everywhere
* add benchmark heavy on the use of FanInShape.in()
* benchmark says: do not use Array for most n
* add JavaDoc to un-final'ed defs to not override
* change deprecated val to def; do not use it
* process patriknw's review comments
* =str #22880 fix mapAsync racy failure handling
* =str #22881 test also resume case for throwing mid-stream mapAsync
* address review feedback, the handle calls must be exactly like that
* added a failing test to demonstrate a bug in groupedWeightedWithin with zero cost function
* fixed the bug by adding a flag indicating if there are elements in buffer, and using it instead of totalWeight in case onTimer is called