Wednesday

Room 5

11:40 - 12:40 (UTC+01)

Talk (60 min)

Implementing async with coroutines and fibers - project Loom in C#

Async has multiple problems. It requires specific return type, can switch thread any time, causes deadlocks, uses global state. Can we do better? Can we do async/await without all its mess?

.NET
Concurrency

In this talk we will learn how async is implemented, see what problems it creates, and explore other possible approaches. We will reimplement some of its features with monads, coroutines, and fibers to see how it could look like in an alternative world. We'll see if we can do better than the thread-pool based approach.

This is loosely related to project Loom in JVM world which explores fibers to improve threading.

Level 300.

Adam Furmanek

I am Adam Furmanek and I am a professional software engineer for almost a decade. Right now I am at Amazon working with Big Data, Spark, and Machine Learning. I am always interested in digging deeper, exploring machine code and going through implementation details to better understand internals of the technologies I use every day. That's why I like debugging, decompiling and disassembling the code to understand memory models, concurrency problems and other details hidden deeply inside. In my free time I play ping-pong, watch Woody Allen's movies and blog stuff at http://blog.adamfurmanek.pl