Lock/unlock each addition:

time main 50 150 50 1
20.990u 9.790s 0:32.21 95.5% 0+387k 0+0io 0pf+0w

time main 50 150 50 2
32.150u 11.680s 0:43.83 100.0% 0+382k 0+543io 1pf+0w

time main 50 150 50 3
26.940u 8.780s 0:35.72 100.0% 0+382k 0+547io 0pf+0w


Batch locking/unlocking

time main 50 150 50 1
19.080u 9.730s 0:30.03 95.9% 0+384k 0+0io 0pf+0w

time main 50 150 50 2
32.500u 11.690s 0:44.19 100.0% 0+376k 0+542io 0pf+0w

time main 50 150 50 3
26.190u 7.750s 0:33.94 100.0% 0+379k 0+543io 0pf+0w


Batch locking/unlocking with inline spinlocks and faster mmap code:
26.020u 9.810s 0:41.04 87.3% 0+386k 2+0io 29pf+0w
