Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Kotlin Coroutines: From Stackless to Full-Stack Implementation - Challenges and Solutions

Java via YouTube

Overview

Explore the evolution and implementation challenges of Kotlin coroutines in this 47-minute Java conference talk. Delve into the redesigned coroutine support shipped in Kotlin 1.1, examining the shift from stackless to full-stack coroutines capable of suspending execution at any depth. Learn about the semantic issues encountered during implementation, the solutions developed to address these challenges, and how Kotlin achieved support for Go-like channels and CSP programming style. Gain insights into practical JVM implementation issues, trade-offs made by the Kotlin team, and the resulting impact on coroutine functionality. Discover key concepts such as suspending functions, coroutine builders, thread confinement, stack trace handling in exceptions, and library evolution. Understand the experimental status of coroutines and their potential for future development in Kotlin programming.

Syllabus

Intro
Async the Kotlin way (prototype)
Suspending functions: use
Suspending functions: declare (prototype)
Suspending functions: implement (prototype)
A problematic example
stack unwind convention
A solution (0)
Call/declaration fidelity
A solution (1)
Tail suspension
A solution (2)
Abstraction
A solution (4)
Recap steps to solution
The final touch: await extension
Coroutine builders (prototype)
Arbitrary suspending calls
Stackless vs Stackful coroutines
The problem with async
Composability: evolved
asyncul (prototype)
The actual Continuation interface
Thread confinement vs coroutines
Stack traces in exceptions
Library evolution: already there
Library evolution: WIP
A closing note on terminology
Experimental status of coroutines

Taught by

Java

Reviews

Start your review of Kotlin Coroutines: From Stackless to Full-Stack Implementation - Challenges and Solutions

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.