diff options
Diffstat (limited to 'repl')
4 files changed, 13 insertions, 11 deletions
diff --git a/repl/scala-2.10/src/main/scala/org/apache/spark/repl/Main.scala b/repl/scala-2.10/src/main/scala/org/apache/spark/repl/Main.scala index 7b4e14bb6a..fba321be91 100644 --- a/repl/scala-2.10/src/main/scala/org/apache/spark/repl/Main.scala +++ b/repl/scala-2.10/src/main/scala/org/apache/spark/repl/Main.scala @@ -22,6 +22,7 @@ import org.apache.spark.internal.Logging object Main extends Logging { initializeLogIfNecessary(true) + Signaling.cancelOnInterrupt() private var _interp: SparkILoop = _ diff --git a/repl/scala-2.10/src/main/scala/org/apache/spark/repl/SparkILoop.scala b/repl/scala-2.10/src/main/scala/org/apache/spark/repl/SparkILoop.scala index e017aa42a4..b7237a6ce8 100644 --- a/repl/scala-2.10/src/main/scala/org/apache/spark/repl/SparkILoop.scala +++ b/repl/scala-2.10/src/main/scala/org/apache/spark/repl/SparkILoop.scala @@ -1027,7 +1027,6 @@ class SparkILoop( builder.getOrCreate() } sparkContext = sparkSession.sparkContext - Signaling.cancelOnInterrupt(sparkContext) sparkSession } diff --git a/repl/scala-2.11/src/main/scala/org/apache/spark/repl/Main.scala b/repl/scala-2.11/src/main/scala/org/apache/spark/repl/Main.scala index fec4d49379..7f2ec01cc9 100644 --- a/repl/scala-2.11/src/main/scala/org/apache/spark/repl/Main.scala +++ b/repl/scala-2.11/src/main/scala/org/apache/spark/repl/Main.scala @@ -30,6 +30,7 @@ import org.apache.spark.util.Utils object Main extends Logging { initializeLogIfNecessary(true) + Signaling.cancelOnInterrupt() val conf = new SparkConf() val rootDir = conf.getOption("spark.repl.classdir").getOrElse(Utils.getLocalDir(conf)) @@ -108,7 +109,6 @@ object Main extends Logging { logInfo("Created Spark session") } sparkContext = sparkSession.sparkContext - Signaling.cancelOnInterrupt(sparkContext) sparkSession } diff --git a/repl/src/main/scala/org/apache/spark/repl/Signaling.scala b/repl/src/main/scala/org/apache/spark/repl/Signaling.scala index 202febf144..9577e0ecaa 100644 --- a/repl/src/main/scala/org/apache/spark/repl/Signaling.scala +++ b/repl/src/main/scala/org/apache/spark/repl/Signaling.scala @@ -28,15 +28,17 @@ private[repl] object Signaling extends Logging { * when no jobs are currently running. * This makes it possible to interrupt a running shell job by pressing Ctrl+C. */ - def cancelOnInterrupt(ctx: SparkContext): Unit = SignalUtils.register("INT") { - if (!ctx.statusTracker.getActiveJobIds().isEmpty) { - logWarning("Cancelling all active jobs, this can take a while. " + - "Press Ctrl+C again to exit now.") - ctx.cancelAllJobs() - true - } else { - false - } + def cancelOnInterrupt(): Unit = SignalUtils.register("INT") { + SparkContext.getActive.map { ctx => + if (!ctx.statusTracker.getActiveJobIds().isEmpty) { + logWarning("Cancelling all active jobs, this can take a while. " + + "Press Ctrl+C again to exit now.") + ctx.cancelAllJobs() + true + } else { + false + } + }.getOrElse(false) } } |