From 85db1c767ef2e43ab462184c3e67f83de39808b0 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Wed, 27 Apr 2016 18:39:24 -0800 Subject: [PATCH] Better port loop. --- .../kotlin/com/beust/kobalt/app/remote/ProcessUtil.kt | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/com/beust/kobalt/app/remote/ProcessUtil.kt b/src/main/kotlin/com/beust/kobalt/app/remote/ProcessUtil.kt index ff5b84ab..1c364533 100644 --- a/src/main/kotlin/com/beust/kobalt/app/remote/ProcessUtil.kt +++ b/src/main/kotlin/com/beust/kobalt/app/remote/ProcessUtil.kt @@ -5,14 +5,8 @@ import java.net.Socket class ProcessUtil { companion object { - fun findAvailablePort(port: Int = 1234): Int { - if (isPortAvailable(port)) return port - - for (i in 1235..65000) { - if (isPortAvailable(i)) return i - } - throw IllegalArgumentException("Couldn't find any port available, something is very wrong") - } + fun findAvailablePort(port: Int = 1234) = (port .. 65000).firstOrNull { isPortAvailable(it) } + ?: throw IllegalArgumentException("Couldn't find any port available, something is very wrong") private fun isPortAvailable(port: Int): Boolean { var s: Socket? = null