Live briefing
Everything about Coroutine
Functions whose execution can be paused
Coroutines are computer program components that can be suspended and resumed — generalizing subroutines — for cooperative multitasking. Coroutines are well-suited for implementing familiar program components such as cooperative tasks, exceptions, event loops, iterators, infinite lists and pipes. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: CoroutineA 5-minute orientation
- Skim a recent paper: Design and Implementation of Boss AI for 2D Action Games Using Finite State Machines and Coroutine ChainingInfluential work since 2022
- Pick up a classic book: Results of the theory of vectors of coroutinesThe most-reprinted book on the subject
- Read the landmark paper: Coroutine sequencing in a block structured environmentCited 43 times
- Go sideways: Async/awaitA closely related topic
- Go sideways: Channel (programming)A closely related topic
📖 Definitions
Noun A piece of code that performs a task, and that can be passed new input and return output more than once.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Coroutine sequencing in a block structured environment
A coroutine mechanism for BCPL
GastCoCo: Graph Storage and Coroutine-Based Prefetch Co-Design for Dynamic Graph Processing
The implementation of retention in a coroutine environment
Faster coroutine pipelines
Coroutine behaviour and implementation
A proof rule for multiple coroutine systems
SGPM: A coroutine framework for transaction processing
🆕 Influential since 2022
📚 Books worth reading
- 📕Results of the theory of vectors of coroutinesRyszard Janicki · 1979
CoroutinesChristopher D. Marlin · 1980- 📕Coroutines and networks of parallel processesG. Kahn · 1976
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Async/await In computer programming, the async/await pattern is a syntactic feature of many programming languages that allows an asynchronous, non-blocking function…
- Channel (programming) Computer programming portal In computing, a channel is a model for inter-thread communication and synchronization via message passing. A message may be…
- Continuation In computer science, a continuation is an abstract representation of the control state of a computer program. A continuation implements (reifies) the program…
- Generator (computer programming) In computer science, a generator is a routine that can be used to control the iteration behaviour of a loop. All generators are also iterators. A generator…
- Futures and promises In computer science, futures, promises, delays, and deferreds are constructs used for synchronizing program execution in some concurrent programming languages…
- Green thread In computer programming, a green thread is a thread that is scheduled by a runtime library or virtual machine (VM) instead of natively by the underlying…
- Entry point In computer programming, an entry point is the place in a program where the execution of a program begins, and where the program has access to command…
- Control flow In software, control flow (or flow of control) describes how execution progresses from one command to the next. In many contexts, such as machine code…