Kotlin coroutines and Java Completable Future integration

Thank you @fvasco, I’ve tried that. Unfortunately result is the same, we still fail with OOM very fast.

Here is the code:

suspend fun query() {
    session.readTransactionAsync { transaction ->
        transaction.runAsync(query, params).thenApply { cursor ->
            cursor.asFlow().onEach { record ->
                val node = record.get("node")
                mySuspendProcessingFunction(node)
            }
        }
    }.thenCompose {
        session.closeAsync()
    }.await()
}

fun StatementResultCursor.asFlow() = flow {
    do {
        val record = nextAsync().await()
        if (record != null) emit(record)
    } while (record != null)
}

Am I missing something? Maybe I’m not using Flow correctly?