Shared Memory version with critical. Using SoA + 3 Law + Blocks