Fixing a Thread-Safety Bug with Nate Berkopec

Download MP3
Can you tell if a Ruby gem is really thread-safe or not? And how do you fix a seemingly thread-safety issue that can be something else entirely?

We had no idea. So we asked Nate Berkopec to help us. Nate is an expert in Ruby performance.

The verdict: nuking all shared global mutable state in your Ruby code is a bad idea if you don't know what you're doing!

Listen to this episode to learn:
- How and why faker-ruby became thread-unsafe, especially for Puma users
- Questions to ask yourself when trying to debug thread-safety issues
- Shared global mutable state is not always the villain, and is not the source of all thread-safety issues
- Nate's "watch-out" list of things that can cause undesired behavior when running multi-threaded Ruby applications: Constants, Class Variables, and Rack Middleware.

Episode Notes
🔗 Full transcript and links

-----

A special thanks to Valentino Stoll, nfstern02, and Gregg P for sponsoring hexdevs!

Enjoy!

Creators and Guests

Stefanni Brasil
Host
Stefanni Brasil
I like to be around people who are kind, curious and compassionate. Co-founder of hexdevs. Developer at Thoughtbot, and a core maintainer of faker-ruby. Public speaker, writer, podcast host, Ruby developer.
Thiago Araujo
Host
Thiago Araujo
Co-founder of hexdevs: helping you become an expert developer.
Nate Berkopec
Guest
Nate Berkopec
🚀 I make Rails apps fast and scalable. 📖 Wrote a few books about that. 👷 Maintain Puma, the most popular Ruby webserver. (he/him) 日本語: @nateberkopec_ja
Fixing a Thread-Safety Bug with Nate Berkopec
Broadcast by