From 0d8fd40b09ac35a9dce979864729772c7458a5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Endre=20S=C3=A1ndor=20Varga?= Date: Sun, 12 Jul 2015 10:28:49 +0200 Subject: [PATCH 1/2] +doc: Add documentation for DetachedStages also extend documentation with more diagrams --- .../rst/images/stage_msc_absorb_1.png | Bin 0 -> 37948 bytes .../rst/images/stage_msc_absorb_2.png | Bin 0 -> 37500 bytes akka-docs-dev/rst/images/stage_msc_buffer.png | Bin 0 -> 58128 bytes .../rst/images/stage_msc_general.png | Bin 0 -> 44337 bytes .../rst/images/stages_sequence_charts.svg | 2310 +++++++++++++++++ .../code/docs/stream/FlowStagesSpec.scala | 49 + akka-docs-dev/rst/scala/stream-customize.rst | 116 +- 7 files changed, 2465 insertions(+), 10 deletions(-) create mode 100644 akka-docs-dev/rst/images/stage_msc_absorb_1.png create mode 100644 akka-docs-dev/rst/images/stage_msc_absorb_2.png create mode 100644 akka-docs-dev/rst/images/stage_msc_buffer.png create mode 100644 akka-docs-dev/rst/images/stage_msc_general.png create mode 100644 akka-docs-dev/rst/images/stages_sequence_charts.svg diff --git a/akka-docs-dev/rst/images/stage_msc_absorb_1.png b/akka-docs-dev/rst/images/stage_msc_absorb_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7b0aa27db687f617c4312bb8c60b96c024ab111a GIT binary patch literal 37948 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 Wue)DkBp4VN7(8A5T-G@yGywpP_&wzS literal 0 HcmV?d00001 diff --git a/akka-docs-dev/rst/images/stage_msc_buffer.png b/akka-docs-dev/rst/images/stage_msc_buffer.png new file mode 100644 index 0000000000000000000000000000000000000000..f6507381fb1f3a0aa663f1d19b4a2bc98fc07376 GIT binary patch literal 58128 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 literal 0 HcmV?d00001 diff --git a/akka-docs-dev/rst/images/stage_msc_general.png b/akka-docs-dev/rst/images/stage_msc_general.png new file mode 100644 index 0000000000000000000000000000000000000000..583fb9131879d5d14b656cecf56df5c465ee4df3 GIT binary patch literal 44337 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 oskuD0slI&4FSHpBocu0+zopr056k-)c^nh literal 0 HcmV?d00001 diff --git a/akka-docs-dev/rst/images/stages_sequence_charts.svg b/akka-docs-dev/rst/images/stages_sequence_charts.svg new file mode 100644 index 0000000000..39e2037214 --- /dev/null +++ b/akka-docs-dev/rst/images/stages_sequence_charts.svg @@ -0,0 +1,2310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + ctx.pull() + onPull() + ctx.pull() + onPull() + ctx.pull() + onPull() + ctx.pull() + onPull() + ctx.pull() + onPull() + ctx.pull() + onPull() + ctx.pull() + onPull() + onPush() + ctx.push() + onPush() + ctx.push() + onPush() + ctx.push() + onPush() + ctx.push() + onPush() + ctx.push() + ... + ... + ... + ... + Source + Filter + Doubler + Sink + + + + + + + + onPull() + ctx.pull() + onPull() + ctx.pull() + onPull() + onUpstreamFinished() + ctx.finish() + ... + ... + + ctx.absorbTermination() + onPull() + + + + + ctx.pull() + onPull() + ctx.pull() + onPull() + onPush() + ctx.push() + onPush() + ctx.push() + Restoring token + + + + + + + + onPull() + ctx.pull() + onPull() + ctx.pull() + onPull() + onUpstreamFinished() + ctx.finish() + ... + ... + ctx.absorbTermination() + + + + ctx.pull() + onPull() + ctx.pull() + onPull() + onPush() + ctx.push() + + onPush() + ctx.push() + + onPush() + ctx.push() + + ctx.push() + + onPull() + + + + + + + ctx.pull() + onPull() + onPull() + onPush() + ctx.push() + ... + ... + ... + ctx.holdDownstream() + + + ctx.pushAndPull() + + onPush() + ctx.push() + + ctx.pull() + onPull() + + ctx.pull() + onPull() + + onPush() + ctx.push() + + onPush() + ctx.push() + + ctx.pull() + onPull() + + onPush() + ctx.push() + ctx.holdUpstream() + + ctx.pull() + onPull() + + + ctx.pushAndPull() + + (initialization) + 0 + 1 + + 0 + 1 + 0 + 1 + 2 + 1 + Buffer size + Buffer(capacity 2) + + diff --git a/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala index 806da0b4fb..21763ab2dd 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala @@ -124,6 +124,55 @@ class FlowStagesSpec extends AkkaSpec with ScalaFutures { } } + + "demonstrate DetachedStage" in { + //#detached + class Buffer2[T]() extends DetachedStage[T, T] { + private var buf = Vector.empty[T] + private var capacity = 2 + + private def isFull = capacity == 0 + private def isEmpty = capacity == 2 + + private def dequeue(): T = { + capacity += 1 + val next = buf.head + buf = buf.tail + next + } + + private def enqueue(elem: T) = { + capacity -= 1 + buf = buf :+ elem + } + + override def onPull(ctx: DetachedContext[T]): DownstreamDirective = { + if (isEmpty) { + if (ctx.isFinishing) ctx.finish() // No more elements will arrive + else ctx.holdDownstream() // waiting until new elements + } else { + val next = dequeue() + if (ctx.isHoldingUpstream) ctx.pushAndPull(next) // release upstream + else ctx.push(next) + } + } + + override def onPush(elem: T, ctx: DetachedContext[T]): UpstreamDirective = { + enqueue(elem) + if (isFull) ctx.holdUpstream() // Queue is now full, wait until new empty slot + else { + if (ctx.isHoldingDownstream) ctx.pushAndPull(dequeue()) // Release downstream + else ctx.pull() + } + } + + override def onUpstreamFinish(ctx: DetachedContext[T]): TerminationDirective = { + if (!isEmpty) ctx.absorbTermination() // still need to flush from buffer + else ctx.finish() // already empty, finishing + } + } + //#detached + } } } diff --git a/akka-docs-dev/rst/scala/stream-customize.rst b/akka-docs-dev/rst/scala/stream-customize.rst index bfab4e952a..404f0c9707 100644 --- a/akka-docs-dev/rst/scala/stream-customize.rst +++ b/akka-docs-dev/rst/scala/stream-customize.rst @@ -25,10 +25,14 @@ The most elementary transformation stage is the :class:`PushPullStage` which can working on streams. A :class:`PushPullStage` can be illustrated as a box with two "input" and two "output ports" as it is seen in the illustration below. +| + .. image:: ../images/stage_conceptual.png :align: center :width: 600 +| + The "input ports" are implemented as event handlers ``onPush(elem,ctx)`` and ``onPull(ctx)`` while "output ports" correspond to methods on the :class:`Context` object that is handed as a parameter to the event handlers. By calling exactly one "output port" method we wire up these four ports in various ways which we demonstrate shortly. @@ -42,10 +46,14 @@ exactly one "output port" method we wire up these four ports in various ways whi To illustrate these concepts we create a small :class:`PushPullStage` that implements the ``map`` transformation. +| + .. image:: ../images/stage_map.png :align: center :width: 300 +| + Map calls ``ctx.push()`` from the ``onPush()`` handler and it also calls ``ctx.pull()`` form the ``onPull`` handler resulting in the conceptual wiring above, and fully expressed in code below: @@ -54,10 +62,14 @@ handler resulting in the conceptual wiring above, and fully expressed in code be Map is a typical example of a one-to-one transformation of a stream. To demonstrate a many-to-one stage we will implement filter. The conceptual wiring of ``Filter`` looks like this: +| + .. image:: ../images/stage_filter.png :align: center :width: 300 +| + As we see above, if the given predicate matches the current element we are propagating it downwards, otherwise we return the "ball" to our upstream so that we get the new element. This is achieved by modifying the map example by adding a conditional in the ``onPush`` handler and decide between a ``ctx.pull()`` or ``ctx.push()`` call @@ -68,10 +80,14 @@ example by adding a conditional in the ``onPush`` handler and decide between a ` To complete the picture we define a one-to-many transformation as the next step. We chose a straightforward example stage that emits every upstream element twice downstream. The conceptual wiring of this stage looks like this: +| + .. image:: ../images/stage_doubler.png :align: center :width: 300 +| + This is a stage that has state: the last element it has seen, and a flag ``oneLeft`` that indicates if we have duplicated this last element already or not. Looking at the code below, the reader might notice that our ``onPull`` method is more complex than it is demonstrated by the figure above. The reason for this is completion handling, which we @@ -83,14 +99,29 @@ corresponds to the logic we expect by looking at the conceptual picture. Finally, to demonstrate all of the stages above, we put them together into a processing chain, which conceptually would correspond to the following structure: +| + .. image:: ../images/stage_chain.png :align: center :width: 650 +| + In code this is only a few lines, using the ``transform`` method to inject our custom processing into a stream: .. includecode:: code/docs/stream/FlowStagesSpec.scala#stage-chain +If we attempt to draw the sequence of events, it shows that there is one "event token" +in circulation in a potential chain of stages, just like our conceptual "railroad tracks" representation predicts. + +| + +.. image:: ../images/stage_msc_general.png + :align: center + +| + + Completion handling ^^^^^^^^^^^^^^^^^^^ @@ -105,16 +136,40 @@ calling ``absorbTermination()`` the ``onPull()`` handler will be called eventual ``ctx.isFinishing`` will return true, indicating that ``ctx.pull()`` cannot be called anymore. Now we are free to emit additional elementss and call ``ctx.finish()`` or ``ctx.pushAndFinish()`` eventually to finish processing. -.. note:: - The reason for this slightly complex termination sequence is that the underlying ``onComplete`` signal of - Reactive Streams may arrive without any pending demand, i.e. without respecting backpressure. This means that - our push/pull structure that was illustrated in the figure of our custom processing chain does not - apply to termination. Our neat model that is analogous to a ball that bounces back-and-forth in a - pipe (it bounces back on ``Filter``, ``Duplicator`` for example) cannot describe the termination signals. By calling - ``absorbTermination()`` the execution environment checks if the conceptual token was *above* the current stage at - that time (which means that it will never come back, so the environment immediately calls ``onPull``) or it was - *below* (which means that it will come back eventually, so the environment does not need to call anything yet). +The reason for this slightly complex termination sequence is that the underlying ``onComplete`` signal of +Reactive Streams may arrive without any pending demand, i.e. without respecting backpressure. This means that +our push/pull structure that was illustrated in the figure of our custom processing chain does not +apply to termination. Our neat model that is analogous to a ball that bounces back-and-forth in a +pipe (it bounces back on ``Filter``, ``Duplicator`` for example) cannot describe the termination signals. By calling +``absorbTermination()`` the execution environment checks if the conceptual token was *above* the current stage at +that time (which means that it will never come back, so the environment immediately calls ``onPull``) or it was +*below* (which means that it will come back eventually, so the environment does not need to call anything yet). + +The first of the two scenarios is when a termination signal arrives after a stage passed the event to its downstream. As +we can see in the following diagram, there is no need to do anything by ``absorbTermination()`` since the black arrows +representing the movement of the "event token" is uninterrupted. + +| + +.. image:: ../images/stage_msc_absorb_1.png + :align: center + +| + +In the second scenario the "event token" is somewhere upstream when the termination signal arrives. In this case +``absorbTermination`` needs to ensure that a new "event token" is generated replacing the old one that is forever gone +(since the upstream finished). This is done by calling the ``onPull()`` event handler of the stage. ű + +| + +.. image:: ../images/stage_msc_absorb_2.png + :align: center + +| + +Observe, that in both scenarios ``onPull()`` kicks off the continuation of the processing logic, the only difference is +whether it is the downstream or the ``absorbTermination()`` call that calls the event handler. Using PushStage --------------- @@ -146,7 +201,48 @@ we reimplemented ``Duplicator`` in terms of a ``StatefulStage``: Using DetachedStage ------------------- -*TODO* +The model described in previous sections, while conceptually simple, cannot describe all desired stages. The main +limitation is the "single-ball" (single "event token") model which prevents independent progress of an upstream and +downstream of a stage. Sometimes it is desirable to *detach* the progress (and therefore, rate) of the upstream and +downstream of a stage, synchronizing only when needed. + +This is achieved in the model by representing a :class:`DetachedStage` as a *boundary* between two "single-ball" regions. +One immediate consequence of this difference is that **it is not allowed to call** ``ctx.pull()`` **from** ``onPull()`` **and +it is not allowed to call** ``ctx.push()`` **from** ``onPush()`` as such combinations would "steal" a token from one region +(resulting in zero tokens left) and would inject an unexpected second token to the other region. This is enforced +by the expected return types of these callback functions. + +One of the important use-cases for :class:`DetachedStage` is to build buffer-like entities, that allow independent progress +of upstream and downstream stages when the buffer is not full or empty, and slowing down the appropriate side if the +buffer becomes empty or full. The next diagram illustrates the event sequence for a buffer with capacity of two elements. + +| + +.. image:: ../images/stage_msc_buffer.png + :align: center + +| + +The very first difference we can notice is that our ``Buffer`` stage is automatically pulling its upstream on +initialization. Remember that it is forbidden to call ``ctx.pull`` from ``onPull``, therefore it is the task of the +framework to kick off the first "event token" in the upstream region, which will remain there until the upstream stages +stop. The diagram distinguishes between the actions of the two regions by colors: *purple* arrows indicate the actions +involving the upstream "event token", while *red* arrows show the downstream region actions. This demonstrates the clear +separation of these regions, and the invariant that the number of tokens in the two regions are kept unchanged. + +For buffer it is necessary to detach the two regions, but it is also necessary to sometimes hold back the upstream +or downstream. The new API calls that are available for :class:`DetachedStage` s are the various``ctx.holdXXX()`` methods +, ``ctx.pushAndPull()`` and variangs, and ``ctx.isHoldingXXX()``. +Calling ``ctx.holdXXX()`` from ``onPull()`` or ``onPush`` results in suspending the corresponding +region from progress, and temporarily taking ownership of the "event token". This state can be queried by ``ctx.isHolding`` +which will tell if the stage is currently holding a token or not. It is only allowed to suspend one of the regions, not +both, since that would disable all possible future events, resulting in a dead-lock. Releasing the held token is only +possible by calling ``pushAndPull()``. This is to ensure that both the held token is released, and the triggering region +gets its token back (one inbound token + one held token = two released tokens). + +The following code example demonstrates the buffer class corresponding to the message sequence chart we discussed. + +.. includecode:: code/docs/stream/FlowStagesSpec.scala#detached Custom graph processing junctions ================================= From d9386c8cc54eba6e6d111c9b415d11c80ca9db12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Mickevi=C4=8Dius?= Date: Tue, 14 Jul 2015 17:45:57 +0300 Subject: [PATCH 2/2] +doc java sample code for detached stage --- akka-docs-dev/rst/java/stream-customize.rst | 123 ++++++++++++++++-- .../scala/code/docs/stream/FlexiDocSpec.scala | 3 +- akka-docs-dev/rst/scala/stream-customize.rst | 17 ++- 3 files changed, 119 insertions(+), 24 deletions(-) diff --git a/akka-docs-dev/rst/java/stream-customize.rst b/akka-docs-dev/rst/java/stream-customize.rst index 536f7b1246..cf6ccd8e8c 100644 --- a/akka-docs-dev/rst/java/stream-customize.rst +++ b/akka-docs-dev/rst/java/stream-customize.rst @@ -25,10 +25,14 @@ The most elementary transformation stage is the :class:`PushPullStage` which can working on streams. A :class:`PushPullStage` can be illustrated as a box with two "input" and two "output ports" as it is seen in the illustration below. +| + .. image:: ../images/stage_conceptual.png :align: center :width: 600 +| + The "input ports" are implemented as event handlers ``onPush(elem,ctx)`` and ``onPull(ctx)`` while "output ports" correspond to methods on the :class:`Context` object that is handed as a parameter to the event handlers. By calling exactly one "output port" method we wire up these four ports in various ways which we demonstrate shortly. @@ -42,10 +46,14 @@ exactly one "output port" method we wire up these four ports in various ways whi To illustrate these concepts we create a small :class:`PushPullStage` that implements the ``map`` transformation. +| + .. image:: ../images/stage_map.png :align: center :width: 300 +| + Map calls ``ctx.push()`` from the ``onPush()`` handler and it also calls ``ctx.pull()`` form the ``onPull`` handler resulting in the conceptual wiring above, and fully expressed in code below: @@ -54,10 +62,14 @@ handler resulting in the conceptual wiring above, and fully expressed in code be Map is a typical example of a one-to-one transformation of a stream. To demonstrate a many-to-one stage we will implement filter. The conceptual wiring of ``Filter`` looks like this: +| + .. image:: ../images/stage_filter.png :align: center :width: 300 +| + As we see above, if the given predicate matches the current element we are propagating it downwards, otherwise we return the "ball" to our upstream so that we get the new element. This is achieved by modifying the map example by adding a conditional in the ``onPush`` handler and decide between a ``ctx.pull()`` or ``ctx.push()`` call @@ -68,10 +80,14 @@ example by adding a conditional in the ``onPush`` handler and decide between a ` To complete the picture we define a one-to-many transformation as the next step. We chose a straightforward example stage that emits every upstream element twice downstream. The conceptual wiring of this stage looks like this: +| + .. image:: ../images/stage_doubler.png :align: center :width: 300 +| + This is a stage that has state: the last element it has seen, and a flag ``oneLeft`` that indicates if we have duplicated this last element already or not. Looking at the code below, the reader might notice that our ``onPull`` method is more complex than it is demonstrated by the figure above. The reason for this is completion handling, which we @@ -83,14 +99,28 @@ corresponds to the logic we expect by looking at the conceptual picture. Finally, to demonstrate all of the stages above, we put them together into a processing chain, which conceptually would correspond to the following structure: +| + .. image:: ../images/stage_chain.png :align: center :width: 650 +| + In code this is only a few lines, using the ``transform`` method to inject our custom processing into a stream: .. includecode:: ../../../akka-samples/akka-docs-java-lambda/src/test/java/docs/stream/FlowStagesDocTest.java#stage-chain +If we attempt to draw the sequence of events, it shows that there is one "event token" +in circulation in a potential chain of stages, just like our conceptual "railroad tracks" representation predicts. + +| + +.. image:: ../images/stage_msc_general.png + :align: center + +| + Completion handling ^^^^^^^^^^^^^^^^^^^ @@ -105,15 +135,39 @@ calling ``absorbTermination()`` the ``onPull()`` handler will be called eventual ``ctx.isFinishing`` will return true, indicating that ``ctx.pull()`` cannot be called anymore. Now we are free to emit additional elementss and call ``ctx.finish()`` or ``ctx.pushAndFinish()`` eventually to finish processing. -.. note:: - The reason for this slightly complex termination sequence is that the underlying ``onComplete`` signal of - Reactive Streams may arrive without any pending demand, i.e. without respecting backpressure. This means that - our push/pull structure that was illustrated in the figure of our custom processing chain does not - apply to termination. Our neat model that is analogous to a ball that bounces back-and-forth in a - pipe (it bounces back on ``Filter``, ``Duplicator`` for example) cannot describe the termination signals. By calling - ``absorbTermination()`` the execution environment checks if the conceptual token was *above* the current stage at - that time (which means that it will never come back, so the environment immediately calls ``onPull``) or it was - *below* (which means that it will come back eventually, so the environment does not need to call anything yet). +The reason for this slightly complex termination sequence is that the underlying ``onComplete`` signal of +Reactive Streams may arrive without any pending demand, i.e. without respecting backpressure. This means that +our push/pull structure that was illustrated in the figure of our custom processing chain does not +apply to termination. Our neat model that is analogous to a ball that bounces back-and-forth in a +pipe (it bounces back on ``Filter``, ``Duplicator`` for example) cannot describe the termination signals. By calling +``absorbTermination()`` the execution environment checks if the conceptual token was *above* the current stage at +that time (which means that it will never come back, so the environment immediately calls ``onPull``) or it was +*below* (which means that it will come back eventually, so the environment does not need to call anything yet). + +The first of the two scenarios is when a termination signal arrives after a stage passed the event to its downstream. As +we can see in the following diagram, there is no need to do anything by ``absorbTermination()`` since the black arrows +representing the movement of the "event token" is uninterrupted. + +| + +.. image:: ../images/stage_msc_absorb_1.png + :align: center + +| + +In the second scenario the "event token" is somewhere upstream when the termination signal arrives. In this case +``absorbTermination`` needs to ensure that a new "event token" is generated replacing the old one that is forever gone +(since the upstream finished). This is done by calling the ``onPull()`` event handler of the stage. + +| + +.. image:: ../images/stage_msc_absorb_2.png + :align: center + +| + +Observe, that in both scenarios ``onPull()`` kicks off the continuation of the processing logic, the only difference is +whether it is the downstream or the ``absorbTermination()`` call that calls the event handler. Using PushStage @@ -146,7 +200,48 @@ we reimplemented ``Duplicator`` in terms of a ``StatefulStage``: Using DetachedStage ------------------- -*TODO* +The model described in previous sections, while conceptually simple, cannot describe all desired stages. The main +limitation is the "single-ball" (single "event token") model which prevents independent progress of an upstream and +downstream of a stage. Sometimes it is desirable to *detach* the progress (and therefore, rate) of the upstream and +downstream of a stage, synchronizing only when needed. + +This is achieved in the model by representing a :class:`DetachedStage` as a *boundary* between two "single-ball" regions. +One immediate consequence of this difference is that **it is not allowed to call** ``ctx.pull()`` **from** ``onPull()`` **and +it is not allowed to call** ``ctx.push()`` **from** ``onPush()`` as such combinations would "steal" a token from one region +(resulting in zero tokens left) and would inject an unexpected second token to the other region. This is enforced +by the expected return types of these callback functions. + +One of the important use-cases for :class:`DetachedStage` is to build buffer-like entities, that allow independent progress +of upstream and downstream stages when the buffer is not full or empty, and slowing down the appropriate side if the +buffer becomes empty or full. The next diagram illustrates the event sequence for a buffer with capacity of two elements. + +| + +.. image:: ../images/stage_msc_buffer.png + :align: center + +| + +The very first difference we can notice is that our ``Buffer`` stage is automatically pulling its upstream on +initialization. Remember that it is forbidden to call ``ctx.pull`` from ``onPull``, therefore it is the task of the +framework to kick off the first "event token" in the upstream region, which will remain there until the upstream stages +stop. The diagram distinguishes between the actions of the two regions by colors: *purple* arrows indicate the actions +involving the upstream "event token", while *red* arrows show the downstream region actions. This demonstrates the clear +separation of these regions, and the invariant that the number of tokens in the two regions are kept unchanged. + +For buffer it is necessary to detach the two regions, but it is also necessary to sometimes hold back the upstream +or downstream. The new API calls that are available for :class:`DetachedStage` s are the various ``ctx.holdXXX()`` methods +, ``ctx.pushAndPull()`` and variants, and ``ctx.isHoldingXXX()``. +Calling ``ctx.holdXXX()`` from ``onPull()`` or ``onPush`` results in suspending the corresponding +region from progress, and temporarily taking ownership of the "event token". This state can be queried by ``ctx.isHolding()`` +which will tell if the stage is currently holding a token or not. It is only allowed to suspend one of the regions, not +both, since that would disable all possible future events, resulting in a dead-lock. Releasing the held token is only +possible by calling ``ctx.pushAndPull()``. This is to ensure that both the held token is released, and the triggering region +gets its token back (one inbound token + one held token = two released tokens). + +The following code example demonstrates the buffer class corresponding to the message sequence chart we discussed. + +.. includecode:: ../../../akka-samples/akka-docs-java-lambda/src/test/java/docs/stream/FlowStagesDocTest.java#detached Custom graph processing junctions ================================= @@ -293,7 +388,7 @@ we use the special :class:`SameState` object which signals :class:`FlexiRoute` t .. warning:: While a :class:`RouteLogic` instance *may* be stateful, the :class:`FlexiRoute` instance *must not* hold any mutable state, since it may be shared across several materialized ``FlowGraph`` instances. - + .. note:: It is only allowed to `emit` at most one element to each output in response to `onInput`, `IllegalStateException` is thrown. @@ -330,11 +425,11 @@ All of the above custom stages (linear or graph) provide a few simple guarantees - The state encapsulated by these classes can be safely modified from the provided callbacks, without any further synchronization. -In essence, the above guarantees are similar to what :class:`Actor`s provide, if one thinks of the state of a custom +In essence, the above guarantees are similar to what :class:`Actor` s provide, if one thinks of the state of a custom stage as state of an actor, and the callbacks as the ``receive`` block of the actor. .. warning:: -It is **not safe** to access the state of any custom stage outside of the callbacks that it provides, just like it + It is **not safe** to access the state of any custom stage outside of the callbacks that it provides, just like it is unsafe to access the state of an actor from the outside. This means that Future callbacks should **not close over** internal state of custom stages because such access can be concurrent with the provided callbacks, leading to undefined - behavior. \ No newline at end of file + behavior. diff --git a/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala index dfb8d85377..64da45ea57 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala @@ -239,7 +239,8 @@ class FlexiDocSpec extends AkkaSpec { "flexi route completion handling" in { import FanOutShape._ //#flexiroute-completion - class ImportantRouteShape[A](_init: Init[A] = Name[A]("ImportantRoute")) extends FanOutShape[A](_init) { + class ImportantRouteShape[A](_init: Init[A] = Name[A]("ImportantRoute")) + extends FanOutShape[A](_init) { val important = newOutlet[A]("important") val additional1 = newOutlet[A]("additional1") val additional2 = newOutlet[A]("additional2") diff --git a/akka-docs-dev/rst/scala/stream-customize.rst b/akka-docs-dev/rst/scala/stream-customize.rst index 404f0c9707..313603fc05 100644 --- a/akka-docs-dev/rst/scala/stream-customize.rst +++ b/akka-docs-dev/rst/scala/stream-customize.rst @@ -136,7 +136,6 @@ calling ``absorbTermination()`` the ``onPull()`` handler will be called eventual ``ctx.isFinishing`` will return true, indicating that ``ctx.pull()`` cannot be called anymore. Now we are free to emit additional elementss and call ``ctx.finish()`` or ``ctx.pushAndFinish()`` eventually to finish processing. - The reason for this slightly complex termination sequence is that the underlying ``onComplete`` signal of Reactive Streams may arrive without any pending demand, i.e. without respecting backpressure. This means that our push/pull structure that was illustrated in the figure of our custom processing chain does not @@ -159,7 +158,7 @@ representing the movement of the "event token" is uninterrupted. In the second scenario the "event token" is somewhere upstream when the termination signal arrives. In this case ``absorbTermination`` needs to ensure that a new "event token" is generated replacing the old one that is forever gone -(since the upstream finished). This is done by calling the ``onPull()`` event handler of the stage. ű +(since the upstream finished). This is done by calling the ``onPull()`` event handler of the stage. | @@ -231,13 +230,13 @@ involving the upstream "event token", while *red* arrows show the downstream reg separation of these regions, and the invariant that the number of tokens in the two regions are kept unchanged. For buffer it is necessary to detach the two regions, but it is also necessary to sometimes hold back the upstream -or downstream. The new API calls that are available for :class:`DetachedStage` s are the various``ctx.holdXXX()`` methods -, ``ctx.pushAndPull()`` and variangs, and ``ctx.isHoldingXXX()``. +or downstream. The new API calls that are available for :class:`DetachedStage` s are the various ``ctx.holdXXX()`` methods +, ``ctx.pushAndPull()`` and variants, and ``ctx.isHoldingXXX()``. Calling ``ctx.holdXXX()`` from ``onPull()`` or ``onPush`` results in suspending the corresponding -region from progress, and temporarily taking ownership of the "event token". This state can be queried by ``ctx.isHolding`` +region from progress, and temporarily taking ownership of the "event token". This state can be queried by ``ctx.isHolding()`` which will tell if the stage is currently holding a token or not. It is only allowed to suspend one of the regions, not both, since that would disable all possible future events, resulting in a dead-lock. Releasing the held token is only -possible by calling ``pushAndPull()``. This is to ensure that both the held token is released, and the triggering region +possible by calling ``ctx.pushAndPull()``. This is to ensure that both the held token is released, and the triggering region gets its token back (one inbound token + one held token = two released tokens). The following code example demonstrates the buffer class corresponding to the message sequence chart we discussed. @@ -391,7 +390,7 @@ we use the special :class:`SameState` object which signals :class:`FlexiRoute` t .. warning:: While a :class:`RouteLogic` instance *may* be stateful, the :class:`FlexiRoute` instance *must not* hold any mutable state, since it may be shared across several materialized ``FlowGraph`` instances. - + .. note:: It is only allowed to `emit` at most one element to each output in response to `onInput`, `IllegalStateException` is thrown. @@ -428,11 +427,11 @@ All of the above custom stages (linear or graph) provide a few simple guarantees - The state encapsulated by these classes can be safely modified from the provided callbacks, without any further synchronization. -In essence, the above guarantees are similar to what :class:`Actor`s provide, if one thinks of the state of a custom +In essence, the above guarantees are similar to what :class:`Actor` s provide, if one thinks of the state of a custom stage as state of an actor, and the callbacks as the ``receive`` block of the actor. .. warning:: It is **not safe** to access the state of any custom stage outside of the callbacks that it provides, just like it is unsafe to access the state of an actor from the outside. This means that Future callbacks should **not close over** internal state of custom stages because such access can be concurrent with the provided callbacks, leading to undefined - behavior. \ No newline at end of file + behavior.