wait until the right number of things come in then let them go
Called from the starter thread.
Called from the starter thread. Blocks until everybody is ready, and then signals go.
Called from the racing threads when ready.
Called from the racing threads when ready. They will then block until all threads are at this point.