---

Facebook open sources concurrent programming debugger

As Facebook explains, the basic reason concurrency is difficult is that when we have two streams of instructions there is a fantastic number of potential schedules of execution. These are too many for a human or even a computer to explore. To get an idea of the scale of the challenge, say a program wanted to examine each of the different ways that two threads of 40 lines of code can interact concurrently, or “interleavings” in concurrency jargon. Even checking these by brute-force at a blazing rate of one billion interactions per second, it would would take millions of years.