Today, we're going to discuss .NET locks API, how are they (un)fit for the async workflows and thread-pool backed runtimes and what can we do about it. We'll also challenge some of the decades old design decisions and propose a new ones. Finally we're going to implement a working