v6. Fixed errors with blocking and optimized the code. I also ran some mutex benchmarks from glibc.
``` pthread_mutex-empty duration=5810878.000000 iterations=1000000.000000 wall-sec=0.005813 mean=5.816004 stdev=0.003214 min-outlier=5.809830 min=5.810878 max=5.819398 max-outlier=5.830294
pthread_mutex-filler duration=11626435.000000 iterations=1000000.000000 wall-sec=0.011628 mean=11.628719 stdev=0.003357 min-outlier=11.622175 min=11.622733 max=11.633000 max-outlier=11.633489
atomic_mutex-empty duration=3601304.000000 iterations=1000000.000000 wall-sec=0.003603 mean=3.503338 stdev=0.067618 min-outlier=3.401698 min=3.418320 max=3.598511 max-outlier=3.601304
atomic_mutex-filler duration=6488340.000000 iterations=1000000.000000 wall-sec=0.006490 mean=6.486992 stdev=0.002660 min-outlier=6.484080 min=6.484080 max=6.491693 max-outlier=6.492111 ```