use InterlockedAdd instead of loop over InterlockedIncrement