Implementing daemon restart mechanism to prevent problems with low memory watcher (TODO: investigate!)
KT-8487
This commit is contained in:
committed by
Alexey Tsvetkov
parent
c6fe18fbe0
commit
4809e8755e
+13
-7
@@ -32,17 +32,17 @@ abstract class BaseGradleIT {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
protected val ranDaemonVersions = hashSetOf<String>()
|
|
||||||
|
protected val ranDaemonVersions = hashMapOf<String, Int>()
|
||||||
val resourcesRootFile = File("src/test/resources")
|
val resourcesRootFile = File("src/test/resources")
|
||||||
|
val MAX_DAEMON_RUNS = 30
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
|
@Synchronized
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
fun tearDownAll() {
|
fun tearDownAll() {
|
||||||
ranDaemonVersions.forEach {
|
ranDaemonVersions.keys.forEach { stopDaemon(it) }
|
||||||
println("Stopping gradle daemon v$it")
|
|
||||||
stopDaemon(it)
|
|
||||||
}
|
|
||||||
ranDaemonVersions.clear()
|
ranDaemonVersions.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,6 +58,7 @@ abstract class BaseGradleIT {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun stopDaemon(ver: String) {
|
fun stopDaemon(ver: String) {
|
||||||
|
println("Stopping gradle daemon v$ver")
|
||||||
val wrapperDir = File(resourcesRootFile, "GradleWrapper-$ver")
|
val wrapperDir = File(resourcesRootFile, "GradleWrapper-$ver")
|
||||||
val cmd = createGradleCommand(arrayListOf("-stop"))
|
val cmd = createGradleCommand(arrayListOf("-stop"))
|
||||||
createProcess(cmd, wrapperDir)
|
createProcess(cmd, wrapperDir)
|
||||||
@@ -70,10 +71,15 @@ abstract class BaseGradleIT {
|
|||||||
return builder.start()
|
return builder.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Synchronized
|
||||||
fun prepareDaemon(version: String) {
|
fun prepareDaemon(version: String) {
|
||||||
if (version !in ranDaemonVersions) {
|
val useCount = ranDaemonVersions.get(version)
|
||||||
|
if (useCount == null || useCount > MAX_DAEMON_RUNS) {
|
||||||
stopDaemon(version)
|
stopDaemon(version)
|
||||||
ranDaemonVersions.add(version)
|
ranDaemonVersions.put(version, 1)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ranDaemonVersions.put(version, useCount + 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user