Skip to content

Commit d27b9ba

Browse files
committed
feat: Add support for suspending functions in executeWithRetry
1 parent 3ec41ea commit d27b9ba

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/main/kotlin/com/haroldadmin/cnradapter/Extensions.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ import kotlinx.coroutines.delay
1515
* @return The NetworkResponse value whether it be successful or failed after retrying
1616
*/
1717
suspend inline fun <T : Any, U : Any> executeWithRetry(
18-
times: Int = 10,
19-
initialDelay: Long = 100, // 0.1 second
20-
maxDelay: Long = 1000, // 1 second
21-
factor: Double = 2.0,
22-
block: () -> NetworkResponse<T, U>
18+
times: Int = 10,
19+
initialDelay: Long = 100, // 0.1 second
20+
maxDelay: Long = 1000, // 1 second
21+
factor: Double = 2.0,
22+
block: suspend () -> NetworkResponse<T, U>
2323
): NetworkResponse<T, U> {
2424
var currentDelay = initialDelay
2525
repeat(times - 1) {

src/test/kotlin/com/haroldadmin/cnradapter/RetryTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class ExtensionsTest : DescribeSpec() {
7171
server.enqueue(MockResponse().setBody("Hi!"))
7272

7373
val response = executeWithRetry(times = 10) {
74-
runBlocking { service.getTextSuspend() }
74+
service.getTextSuspend()
7575
}
7676

7777
it("Should end up with NetworkResponse.Success after 10 retries") {

0 commit comments

Comments
 (0)