Borjan Tchakaloff
Borjan has been fully focusing his attention on software engineering with Python for the last four years. Prior to that, he was neck deep in the Android world where he was a maintainer of an Android distribution for a phone manufacturer for a few years.
Python came into play there as a nice automation language from applying missing Linux kernel patches to bench testing operating system builds.
Session
Are you working with threads, processes, or more generally “workers”? And do you have blocks of code that must not be called concurrently? Maybe you didn't even realise it until your system experienced a bug you could not reproduce until the stars aligned. Then you surely know that hope is not the answer to a robust system, we must be prepared to face worst-case scenarios.
This talk will first briefly present race conditions, a staple in concurrent computing. We will then compare implicit and explicit concurrency management in your core logic, that is whether you delegate or craft protective logic yourself. Next comes testing, the real crux of the talk, where we will demonstrate how to manufacture a race condition. Finally we will explore how to solve such problems with the built-in tools the Python standard library offers.