Fixed a very unlikely race condition in WTF::WordLock
Created attachment 339088 [details] Patch
I'm not sure which arguments are best for LockSpeedTest. These results looked OK to me: ~/OpenSource> ./LockSpeedTest-baseline wordlock 1 4 10 20 40 2 WTFWordLock: 15528.899 KHz WTFWordLock = {15528.899}; ===== ~/OpenSource> ./LockSpeedTest wordlock 1 4 10 20 40 2 WTFWordLock: 15297.111 KHz WTFWordLock = {15297.111}; ~/OpenSource> ./LockSpeedTest-baseline wordlock 1 4 128 1024 40 2 WTFWordLock: 1505.704 KHz WTFWordLock = {1505.704}; ===== ~/OpenSource> ./LockSpeedTest wordlock 1 4 128 1024 40 2 WTFWordLock: 1499.678 KHz WTFWordLock = {1499.678};
Side note: ParkingLot does not have this bug. (It uses reference counting instead of the "lock more" solution I used here.)
Committed r231148: <https://trac.webkit.org/changeset/231148>
<rdar://problem/39824505>
*** Bug 185547 has been marked as a duplicate of this bug. ***