Today's is another threading episode. This time around, we tackle the subject of "atomicity", and learn about the false assumption at the root of many threading bugs.
Today we learn about the concept of a "recursive mutex" as we help a turtle-racing league update their software systems.
Continuing with the general theme of threads and concurrency, today we look at another pattern for splitting up work in parallel.
In this episode we take some already-good code and make it even better.
In this episode we finally discover why the Timeout module is unsafe, and a facility new in Ruby 2.0 that makes dealing with thread interruptions much less error-prone.
In today's episode, we'll simplify our thread-safe queue code by employing a "benign value" to represent the default max queue size.
We continue to evolve our thread-safe queue implementation. Today, we add the ability to set a bound on the queue size.
In this episode some bugs turn up in our thread-safe queue class.
Continuing to build our own thread-safe queue class, today we give it the ability to handle time out enqueues and dequeues.