PhD Seminar • Systems and Networking • How do Computers Procrastinate Politely? A Review of Patterns Underlying Concurrency — Part 1

Friday, January 14, 2022 2:00 pm - 2:00 pm EST (GMT -05:00)

Please note: This PhD seminar will be given online.

Thierry Delisle, PhD candidate
David R. Cheriton School of Computer Science

Supervisor: Professor Peter Buhr

What is the polite way for computer programs to procrastinate?

Postponing work politely means not preventing the progress of others, which requires taking turns letting others make eventual progress. When this happens quickly, there is the illusion of simultaneity and possibly real simultaneity.

This talk constructs from first principles the various patterns programmers use to achieve (the illusion of) simultaneity, called concurrency. Using a simple and recurring example, I show how to implement concurrency from scratch, out of thin air, using several basic patterns, and discuss the resulting implications on programming style. I also highlight how various language features are used to enable these patterns. To develop this concurrency taxonomy, the material is presented in two seminars:

  • The first seminar answers the questions: what is concurrency, how do you know when there is concurrency and what patterns provide interleaving for simultaneity.
  • The second seminar takes these fundamental concepts and builds different executors, event loops, and other underlying concurrent patterns for programmers to express concurrency in a programming language.

These talks are accessible to anyone with a basic understanding of concurrency.


Bio: I’m PhD student with Peter Buhr as my supervisor. I work on concurrency on the Cforall programming language for which I built the user-level threads, coroutines and large chunks of the concurrency primitives. My research interests revolve around making high-performance concurrency systems easy to use and hard to misuse.