Patent ID: 7159215

Claim:
A computer system that employs a plurality of threads of execution to perform a parallel-execution operation in which the threads identify tasks dynamically and in which the computer system comprises: A) a mechanism that associates a separate status-word field with each of the threads; and B) a mechanism that operates the threads in a manner that each thread: i) executes a task-finding routine to find tasks previously identified dynamically and performs tasks thereby found, with its associated status-word field containing a value indicating it is active, until the task-finding routine finds no more tasks; ii) when the task-finding routine executed in step (i) finds no more tasks, sets the contents of its associated status-word field to a value indicating it is inactive; iii) after completing step (ii) and while the status-word field associated with any other thread contains a value indicating that the other thread is active, continues to search for a task using the task-finding routine, and, if it finds one, sets its associated status-word field contents to a value indicating that it is active before attempting to execute a found task; and iv) during step (iii) when none of the status-word fields associated with other threads contains a value indicating that an associated thread is active and no task has been found, terminates its performance of the parallel-execution operation.