Agent Skills: Kotlin Coroutines Skill

Kotlin coroutines - structured concurrency, Flows, exception handling

kotlincoroutinesstructured-concurrencyflowsexception-handling
developmentID: pluginagentmarketplace/custom-plugin-kotlin/kotlin-coroutines

Skill Files

Browse the full folder contents for kotlin-coroutines.

Download Skill

Loading file tree…

skills/kotlin-coroutines/SKILL.md

Skill Metadata

Name
kotlin-coroutines
Description
Kotlin coroutines - structured concurrency, Flows, exception handling

Kotlin Coroutines Skill

Master asynchronous programming with structured concurrency.

Topics Covered

Structured Concurrency

// ✅ Structured - cancellation propagates
class Repository(private val scope: CoroutineScope) {
    suspend fun load() = withContext(Dispatchers.IO) { fetch() }
}

// ❌ Avoid GlobalScope
GlobalScope.launch { /* leaks */ }

Exception Handling

suspend fun loadData() = supervisorScope {
    val a = async { fetchA() }
    val b = async { fetchB() }
    Result(a.awaitOrNull(), b.awaitOrNull())
}

// Never swallow CancellationException
catch (e: Exception) {
    if (e is CancellationException) throw e
}

Testing

@Test
fun test() = runTest {
    val vm = ViewModel(testDispatcher)
    vm.load()
    advanceUntilIdle()
    assertThat(vm.state.value.data).isNotNull()
}

Troubleshooting

| Issue | Resolution | |-------|------------| | Coroutine leak | Use structured scopes, not GlobalScope | | Test hangs | Inject TestDispatcher, use advanceUntilIdle() |

Usage

Skill("kotlin-coroutines")