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.
Category: Episodes
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.
Episode #138: Condition Variable
As we continue to explore the fundamental building blocks of multithreaded programming, today we encounter the Condition Variable, and what it has to do with my local delicatessen.
Episode #137: Mutex
In this episode we introduce the concept of a "critical section", and learn about one of the fundamental primitives that makes multithreaded programming possible.
Episode #136: Dead Thread
Concurrent programming is hard, and one of the things that makes it so hard is that a thread can unexpectedly die without giving the programmer any indication. In this episode …
Episode #135: Rake Multitask
In this, the final (for now) episode of the Rake miniseries, we take a look at how to speed up Rake runs by taking advantage of multiple cores.