Refactor Tapas::Queue

In previous episodes, we got the Tapas::Queue class under test, using a couple of different thread-testing techniques. Now that it has tests, it's tim…

Thread Local Variable

Today's episode introduces the concept of thread-local variables, and shows how they can be put to use in an ActiveRecord-like library.

Lockstep Testing

In this episode we'll explore a novel technique for testing multithreaded code. The lockstep library can be found here: https://github.com/avdi/locks…

Testing Threads

Working with threads is hard enough, but getting them under test is even trickier. In this episode we start to look at techniques for verifying the lo…

Thread Pool

Continuing with the general theme of threads and concurrency, today we look at another pattern for splitting up work in parallel.

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…

Bounded Queue

We continue to evolve our thread-safe queue implementation. Today, we add the ability to set a bound on the queue size.

Timed Queue

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

Mutex

In this episode we introduce the concept of a "critical section", and learn about one of the fundamental primitives that makes multithreaded programmi…