RubyFlow The Ruby and Rails community linklog

×

The Ruby and Rails community linklog

Made a library? Written a blog post? Found a useful tutorial? Share it with the Ruby community here or just enjoy what everyone else has found!

Fixing Thread Safety Bugs With Nate Berkopec

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 Link

Post a comment

You can use basic HTML markup (e.g. <a>) or Markdown.

As you are not logged in, you will be
directed via GitHub to signup or sign in