Race: A condition in which chains of logic that must eventually come together, operate independently and without adequate synchronization. If it matters which result is presented first and if it is possible that the same signal is not always presented first, a race condition exists. Race conditions are best known in hardware where a circuit containing a race condition may work perfectly during development and test, then fail in use because environment or implementation details allow the undesired signal to win the race. Race conditions are especially annoying when the desired result is the usual result and the undesired result comes and goes unreproducably.

Although race conditions are best known in hardware, they can exist in software also. One of the more notorious computer bugs of the 20th Century was a fault in the Therac-25 medical linear accelerator that caused it to administer serious radiation overdoses to a number of patients. That was due to the confluence of two race conditions in the software.

Return To Index Copyright 1994-2008 by Donald Kenney.