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.
Month: October 2013

Episode #146: Monitor
Today we learn about the concept of a "recursive mutex" as we help a turtle-racing league update their software systems.

Episode #145: Active Object
Continuing with the general theme of threads and concurrency, today we look at another pattern for splitting up work in parallel.

Episode #144: Bulk Generation
In this episode we take some already-good code and make it even better.

Episode #143: Thread Interruptions
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.

Episode #142: Infinity
In today's episode, we'll simplify our thread-safe queue code by employing a "benign value" to represent the default max queue size.

Episode #141: Bounded Queue
We continue to evolve our thread-safe queue implementation. Today, we add the ability to set a bound on the queue size.

Episode #140: Threads are Hard
In this episode some bugs turn up in our thread-safe queue class.

Episode #139: Timed Queue
Continuing to build our own thread-safe queue class, today we give it the ability to handle time out enqueues and dequeues.