tuweni / org.apache.tuweni.concurrent.coroutines / timeoutAndRetry

timeoutAndRetry

suspend fun <R> timeoutAndRetry(timeout: Long, block: suspend (Int) -> R?): R (source)

Cancel and retry a suspending block until a non-null result is obtained.

Parameters

timeout - the delay before re-attempting

block - the suspending block to be executed

Return
the first non-null result

suspend fun <R> timeoutAndRetry(timeout: Long, maxRetries: Int, block: suspend (Int) -> R?): R? (source)

Cancel and retry a suspending block until a non-null result is obtained.

Parameters

timeout - the delay before re-attempting

maxRetries - the maximum number of attempts

block - the suspending block to be executed

Return
the first non-null result, or null if all attempts fail

suspend fun <R> timeoutAndRetry(timeout: (Int) -> Long?, block: suspend (Int) -> R?): R? (source)

Cancel and retry a suspending block until a non-null result is obtained.

Parameters

timeout - a function returning the delay that should follow each attempt, or null if no further attempts should be made

block - the suspending block to be executed

Return
the first non-null result, or null if all attempts fail