tedyu commented on code in PR #50020: URL: https://github.com/apache/spark/pull/50020#discussion_r1992516501
########## core/src/main/scala/org/apache/spark/BarrierCoordinator.scala: ########## @@ -134,11 +138,8 @@ private[spark] class BarrierCoordinator( // Cancel the current active TimerTask and release resources. private def cancelTimerTask(): Unit = { - if (timerTask != null) { - timerTask.cancel() - timer.purge() - timerTask = null - } + timerFutures.asScala.foreach(_.cancel(false)) Review Comment: What if a new future is added in between these two statements ? I think the correct way to cancel and remove the futures is to iterate over the futures in a block enclosed within `timerFutures.synchronized` -- 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: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org