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 ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6031#note_75986