mdedetrich commented on code in PR #981:
URL: https://github.com/apache/incubator-pekko/pull/981#discussion_r1464351731
##########
stream/src/main/scala/org/apache/pekko/stream/impl/fusing/StreamOfStreams.scala:
##########
@@ -614,14 +607,31 @@ import pekko.util.ccompat.JavaConverters._
override def onDownstreamFinish(cause: Throwable): Unit = {
substreamCancelled = true
- if (isClosed(in) || propagateSubstreamCancel(cause)) {
- cancelStage(cause)
- } else {
- // Start draining
- if (!hasBeenPulled(in)) pull(in)
+ decider(cause) match {
+ case Supervision.Stop =>
+ cancelStage(cause)
+ case Supervision.Resume =>
+ if (isClosed(in)) cancelStage(cause)
+ else {
+ // Start draining
+ if (!hasBeenPulled(in)) pull(in)
+ }
+ case Supervision.Restart =>
+ if (isClosed(in)) completeStage()
+ else {
+ restartState()
+ // Start draining
+ if (!hasBeenPulled(in)) pull(in)
+ }
Review Comment:
> I mean I can't see how this will solve the origin problem. when restarting
the flow, the connected sink is not restarted.
Thats actually the point I am making which is that this PR's is no longer
about solving the original problem (i.e.
https://github.com/apache/incubator-pekko/issues/980) but is now just generally
about supporting `Supervision.restart` for `SubFlow` in way that makes sense.
https://github.com/apache/incubator-pekko/issues/980 is going to be solved
another way that makes more sense (which we already discussed).
So with that being said, if we had a design goal of adding support for
`Supervision.restart` generally in `SubFlow`, does this current implementation
make sense or am I missing something?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]