Github user tdas commented on a diff in the pull request:

    https://github.com/apache/spark/pull/10779#discussion_r50155771
  
    --- Diff: 
streaming/src/main/scala/org/apache/spark/streaming/scheduler/StreamingListenerForwardingBus.scala
 ---
    @@ -17,17 +17,38 @@
     
     package org.apache.spark.streaming.scheduler
     
    -import java.util.concurrent.atomic.AtomicBoolean
    +import org.apache.spark.scheduler.{LiveListenerBus, SparkListener, 
SparkListenerEvent}
    +import org.apache.spark.util.ListenerBus
     
    -import org.apache.spark.Logging
    -import org.apache.spark.util.AsynchronousListenerBus
    +/**
    + * Wrap StreamingListenerEvent as SparkListenerEvent so that it can be 
posted to Spark listener bus.
    + */
    +private[streaming] case class WrappedStreamingListenerEvent(
    +    streamingListenerEvent: StreamingListenerEvent) extends 
SparkListenerEvent {
    +
    +  // TODO once SPARK-12140 is resolved this will be true as well
    +  protected[spark] override def logEvent: Boolean = false
    +}
     
    -/** Asynchronously passes StreamingListenerEvents to registered 
StreamingListeners. */
    -private[spark] class StreamingListenerBus
    -  extends AsynchronousListenerBus[StreamingListener, 
StreamingListenerEvent]("StreamingListenerBus")
    -  with Logging {
    +/**
    + * A Streaming listener bus to forward events in 
WrappedStreamingListenerEvent to StreamingListeners
    + */
    +private[streaming] class StreamingListenerForwardingBus(sparkListenerBus: 
LiveListenerBus)
    +  extends SparkListener with ListenerBus[StreamingListener, 
StreamingListenerEvent] {
    --- End diff --
    
    I am not sure whether this should be extend ListenerBus. It gets confusing 
again on whether the events are posted on same thread, different async thread, 
or forwarded to a different async thread. Also this inherits the `postAll` 
method which someone can accidentally use and violate all threading assumptions.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to