Patent ID: 8141082

Claim:
A computer-implemented method comprising: processing a task in a multi-threaded computing environment, wherein the task includes multiple segments of code; representing the task as a node of a data structure; adding child nodes to the data structure to represent child tasks spawned by corresponding parent tasks; associating each added child node with a wait number based on a segment number of a corresponding parent node; associating each added child node with a corresponding wait list that includes a wait number of each of one or more lineal parent nodes of the added child node, wherein a lineal parent node corresponds to a task from which, or through which, a child task is spawned; identifying first and second tasks that access a memory location; and evaluating one or more of the following to determine whether the accesses to the memory location by the first and second tasks correspond to a data race to the memory location; wait numbers associated with first and second nodes corresponding to the first and second tasks, and wait lists associated with lineal parent nodes of the first and second nodes.