=str small improvement in GraphInterpreter.currentInterpreter

This commit is contained in:
Roland Kuhn 2015-11-06 08:57:24 +01:00
parent e50a5ee6fc
commit f85ffb575c

View file

@ -248,12 +248,6 @@ private[stream] object GraphInterpreter {
private[stream] def currentInterpreterOrNull: GraphInterpreter =
_currentInterpreter.get()(0).asInstanceOf[GraphInterpreter]
/**
* INTERNAL API
*/
private[stream] def setCurrentInterpreter(gi: GraphInterpreter) =
_currentInterpreter.get()(0) = gi
}
/**
@ -502,8 +496,9 @@ private[stream] final class GraphInterpreter(
*/
def execute(eventLimit: Int): Unit = {
if (Debug) println(s"$Name ---------------- EXECUTE (running=$runningStages, shutdown=${shutdownCounter.mkString(",")})")
val previousInterpreter = currentInterpreterOrNull
setCurrentInterpreter(this)
val currentInterpreterHolder = _currentInterpreter.get()
val previousInterpreter = currentInterpreterHolder(0)
currentInterpreterHolder(0) = this
try {
var eventsRemaining = eventLimit
while (eventsRemaining > 0 && queueTail != queueHead) {
@ -518,7 +513,7 @@ private[stream] final class GraphInterpreter(
eventsRemaining -= 1
}
} finally {
setCurrentInterpreter(previousInterpreter)
currentInterpreterHolder(0) = previousInterpreter
}
if (Debug) println(s"$Name ---------------- $queueStatus (running=$runningStages, shutdown=${shutdownCounter.mkString(",")})")
// TODO: deadlock detection