Race Conditions: Practical Tools and Techniques for Testing, Preventing, and Debugging

By Greg Law

Race conditions are hard, and your code is littered with them whether or not you realise it! They often escape testing to crop up in production, but wherever they raise their ugly head they are fiendishly difficult to track down. So often the dreaded 'Heisenbug' — you add some logging or attach a debugger, and the bug goes away.

There are many tools and techniques that can help: some well known, others less so. This talk contains few slides, lots of practical examples of how to test for them, and how to fix them. Includes introduction and advanced usage of Thread Sanitizer, Helgrind and DRD, how to get the most of GDB with threaded programs, super-lightweight and lock-free logging with L3, an introduction to use thread fuzzing, introduction to static analysis, and some tips and tricks on how to test for them and how to avoid them in the first place.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.