K 10 svn:author V 3 mjg K 8 svn:date V 27 2017-11-25T20:10:33.825338Z K 7 svn:log V 296 locks: retry turnstile/sleepq loops on failed cmpset In order to go to sleep threads set waiter flags, but that can spuriously fail e.g. when a new reader arrives. Instead of unlocking everything and looping back, re-evaluate the new state while still holding the lock necessary to go to sleep. END