Swapping Thread.sleep(0) with Object.wait(0) caused Queue to lock up. Thanks to rpoplin for pointing it out.

This commit is contained in:
Khalid Shakir 2011-10-28 15:49:12 -04:00
parent 0ca7428e76
commit e25d40882a
1 changed files with 6 additions and 3 deletions

View File

@ -419,8 +419,11 @@ class QGraph extends Logging {
if (readyJobs.size == 0 && runningJobs.size > 0) {
runningLock.synchronized {
if (running)
runningLock.wait(nextRunningCheck(lastRunningCheck))
if (running) {
val timeout = nextRunningCheck(lastRunningCheck)
if (timeout > 0)
runningLock.wait(timeout)
}
}
}
@ -471,7 +474,7 @@ class QGraph extends Logging {
lastRunningCheck > 0 && nextRunningCheck(lastRunningCheck) <= 0
private def nextRunningCheck(lastRunningCheck: Long) =
0L max ((30 * 1000L) - (System.currentTimeMillis - lastRunningCheck))
((30 * 1000L) - (System.currentTimeMillis - lastRunningCheck))
private def logStatusCounts {
logger.info("%d Pend, %d Run, %d Fail, %d Done".format(