A racetrack problem is a specific instance of a type of race condition. A racetrack problem is a flaw in a system or process whereby the output and/or result of the process is unexpectedly and critically dependent on the sequence or timing of other events that run in a circular pattern. Note that this problem is semantically different from a race condition because of the circular nature of the problem.
The term originates with the idea of two signals racing each other in a circular motion to influence the output first. Racetrack problems can occur in electronics systems, especially logic circuits, and in computer software, especially multithreaded or distributed programs.
The term "Racetrack problem" was coined by a Research Engineer at Penn State University. This engineer noticed that the problem seemed to involve a racetrack, instead of just any kind of race.
- Starvation and Critical Race Analyzers for Ada
- Paper "Algorithms for the Optimal State Assignment of Asynchronous State Machines" by Robert M. Fuhrer, Bill Lin and Steven M. Nowick
- Paper "A Novel Framework for Solving the State Assignment Problem for Event-Based Specifications" by Luciano Lavagno, Cho W. Moon, Robert K. Brayton and Alberto Sangiovanni-Vincentelli
- Article "Secure programmer: Prevent race conditions—Resource contention can be used against you" by David A. Wheeler
- Chapter "Avoid Race Conditions" (Secure Programming for Linux and Unix HOWTO)
- Race conditions, security, and immutability in Java, with sample source code and comparison to C code, by Chiral Software