January 15th, 2010


Race Conditions

For those who aren't familiar with the term, a race condition is a class of computer problem in which two things need to happen in a certain order, but there isn't enough synchronization to guarantee that they happen in that order.

Here's a real-world example: suppose one person is handing another person a knife. "Receiver grasps the knife firmly" has to happen before "giver releases the knife", or the knife gets dropped with potentially bad consequences. If you don't have enough coordination between the giver and the receiver to guarantee that those two actions happen in order, you have a race condition, even if the transfer usually happens smoothly.

Now that I've defined my terms, I can make my point:

When I'm tired and stressed like this, I find myself hitting race conditions that don't normally hit me.
Some examples of events that I'm not always able to keep in order:
"Open door" and "walk through door"
"Tip glass so water flows out" and "open mouth"