Skip to content

Commit 6f01c0c

Browse files
committed
Small optimization for handlers with infinite timeout
1 parent bbb7d46 commit 6f01c0c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

krpc/krpc-core/src/commonMain/kotlin/kotlinx/rpc/krpc/internal/KrpcReceiveHandler.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,15 @@ internal class KrpcActingReceiveHandler(
149149
while (true) {
150150
val (message, onMessageFailure) = storingHandler.receiveCatching().getOrNull() ?: break
151151

152-
val result = withTimeoutOrNull(timeout) { tryHandle(message) }
153-
?: HandlerResult.Failure(
152+
val result = if (timeout == Duration.INFINITE) {
153+
tryHandle(message)
154+
} else {
155+
withTimeoutOrNull(timeout) {
156+
tryHandle(message)
157+
} ?: HandlerResult.Failure(
154158
illegalStateException("Timeout while processing message")
155159
)
160+
}
156161

157162
if (result is HandlerResult.Failure) {
158163
onMessageFailure(result.cause)

0 commit comments

Comments
 (0)