A method for detecting a potential race condition is provided comprising the
steps
of identifying a memory access in a source code segment, the source code segment
being executable in any one of a plurality of execution threads; searching backward
from the memory access through each of the plurality of threads for an assert protection
declaration without any intervening deassert protection declaration, and identifying
the potential race condition if the assert protection declaration without any intervening
deassert protection declaration was not found in each of the plurality of threads;
and searching forward from the memory access through each of the plurality of threads
for the deassert protection declaration, and identifying the potential race condition
if the deassert protection declaration was not found in each of the plurality of threads.