diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/threading/ThreadUtils.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/threading/ThreadUtils.kt index 7590f7e12d..639ec36def 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/threading/ThreadUtils.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/threading/ThreadUtils.kt @@ -1,5 +1,6 @@ package com.onesignal.common.threading +import com.onesignal.debug.internal.logging.Logging import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext @@ -41,11 +42,16 @@ fun suspendifyBlocking(block: suspend () -> Unit) { */ fun suspendifyOnMain(block: suspend () -> Unit) { thread { - runBlocking { - withContext(Dispatchers.Main) { - block() + try { + runBlocking { + withContext(Dispatchers.Main) { + block() + } } } + catch (e: Exception) { + Logging.error("Exception on thread with switch to main", e) + } } } @@ -60,8 +66,13 @@ fun suspendifyOnThread( block: suspend () -> Unit, ) { thread(priority = priority) { - runBlocking { - block() + try { + runBlocking { + block() + } + } + catch (e: Exception) { + Logging.error("Exception on thread", e) } } } @@ -78,8 +89,13 @@ fun suspendifyOnThread( block: suspend () -> Unit, ) { thread(name = name, priority = priority) { - runBlocking { - block() + try { + runBlocking { + block() + } + } + catch (e: Exception) { + Logging.error("Exception on thread '${name}'", e) } } }