From 6009d6c2248c618e1790accfbd382bbf8f8cc8c1 Mon Sep 17 00:00:00 2001 From: sacOO7 Date: Thu, 17 Oct 2024 17:00:20 +0530 Subject: [PATCH] Refactored/improved while loop inside AtomicExecutor --- .../src/main/java/com/ably/chat/AtomicExecutor.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/chat-android/src/main/java/com/ably/chat/AtomicExecutor.kt b/chat-android/src/main/java/com/ably/chat/AtomicExecutor.kt index 3bac6b05..1138fe85 100644 --- a/chat-android/src/main/java/com/ably/chat/AtomicExecutor.kt +++ b/chat-android/src/main/java/com/ably/chat/AtomicExecutor.kt @@ -33,10 +33,12 @@ class AtomicExecutor(private val scope: CoroutineScope) { scope.launch { if (!isRunning) { isRunning = true - while (priorityQueue.size > 0) { - val task = priorityQueue.remove() - val result = kotlin.runCatching { scope.async(block = task.coroutineBlock).await() } - task.resultChannel.send(result) + while (priorityQueue.isNotEmpty()) { + val task = priorityQueue.poll() + task?.let { + val result = kotlin.runCatching { scope.async(block = it.coroutineBlock).await() } + it.resultChannel.send(result) + } } isRunning = false }