Patent ID: 7581222

Claim:
A method in a data processing system for synchronizing N concurrently running processes in the data processing system at a first phase before allowing the N processes to proceed to a second phase, N>=2, comprising: providing a first array of N elements initialized each to a first state wherein each i th element of said first array is associated with an i th concurrently running process which will update the i th element of the first array to a second state in response to completing the first phase, where 1=i<=N; providing a second array of N elements initialized each to a hold state wherein each i th element of said second array is associated with the i th concurrently running process associated with the i th element of the first array and is used to hold the i th associated concurrently running process at the first phase, and is enabled to switch, in response to receiving a release instruction, to a release state to release the i th associated concurrently running process to proceed to the second phase; and using a designated process configured to ascertain when the N elements of the first array are updated to the second state to issue the release instruction to allow the N processes to proceed to the second phase, each i th process of said N concurrently running processes waits at its i th associated element of said second array for said release state in response to completing the first phase and updating the i th associated element of the first array; and wherein after the N elements of said first array are updated to the second state, and prior to issuance of the release instruction the N elements of said first array are reinitialized to the first state.