diff options
author | Mark Hamstra <markhamstra@gmail.com> | 2013-12-05 17:16:44 -0800 |
---|---|---|
committer | Mark Hamstra <markhamstra@gmail.com> | 2013-12-05 17:16:44 -0800 |
commit | aebb123fd3b4bf0d57d867f33ca0325340ee42e4 (patch) | |
tree | 8e95f27ddc935a22ac98f3b50b71415b6f5bbb91 /core | |
parent | 5d460253d6080d871cb71efb112ea17be0873771 (diff) | |
download | spark-aebb123fd3b4bf0d57d867f33ca0325340ee42e4.tar.gz spark-aebb123fd3b4bf0d57d867f33ca0325340ee42e4.tar.bz2 spark-aebb123fd3b4bf0d57d867f33ca0325340ee42e4.zip |
jobWaiter.synchronized before jobWaiter.wait
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/scala/org/apache/spark/FutureAction.scala | 2 | ||||
-rw-r--r-- | core/src/main/scala/org/apache/spark/scheduler/JobWaiter.scala | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/core/src/main/scala/org/apache/spark/FutureAction.scala b/core/src/main/scala/org/apache/spark/FutureAction.scala index 1ad9240cfa..c6b4ac5192 100644 --- a/core/src/main/scala/org/apache/spark/FutureAction.scala +++ b/core/src/main/scala/org/apache/spark/FutureAction.scala @@ -99,7 +99,7 @@ class SimpleFutureAction[T] private[spark](jobWaiter: JobWaiter[_], resultFunc: override def ready(atMost: Duration)(implicit permit: CanAwait): SimpleFutureAction.this.type = { if (!atMost.isFinite()) { awaitResult() - } else { + } else jobWaiter.synchronized { val finishTime = System.currentTimeMillis() + atMost.toMillis while (!isCompleted) { val time = System.currentTimeMillis() diff --git a/core/src/main/scala/org/apache/spark/scheduler/JobWaiter.scala b/core/src/main/scala/org/apache/spark/scheduler/JobWaiter.scala index 58f238d8cf..b026f860a8 100644 --- a/core/src/main/scala/org/apache/spark/scheduler/JobWaiter.scala +++ b/core/src/main/scala/org/apache/spark/scheduler/JobWaiter.scala @@ -31,6 +31,7 @@ private[spark] class JobWaiter[T]( private var finishedTasks = 0 // Is the job as a whole finished (succeeded or failed)? + @volatile private var _jobFinished = totalTasks == 0 def jobFinished = _jobFinished |