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

Reply via email to