Valgrind is single threaded and only changes threads as part of
system calls or waits.
I found some busy loops where the server assumes that some other
thread will change the state, which will not happen with valgrind.
Added VALGRIND_YIELD to the loops, which calls pthread_yield() if
HAVE_VALGRIND is defined.
Added pthread_yield() to the loops in table_cache.
We should consider changing some of the VALGRIND_YIELD calls to call
pthread_yield() as busy loop without any sleep() is usually a bad
thing.
Reviewer: svojtovich@gmail.com