do the actual computation outside the critical section