mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Added VALGRIND_YIELD to be able to abort from busy loops
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
This commit is contained in:
@@ -901,6 +901,7 @@ retry:
|
||||
{
|
||||
mysql_mutex_unlock(&element->LOCK_table_share);
|
||||
lf_hash_search_unpin(thd->tdc_hash_pins);
|
||||
VALGRIND_YIELD;
|
||||
goto retry;
|
||||
}
|
||||
lf_hash_search_unpin(thd->tdc_hash_pins);
|
||||
|
Reference in New Issue
Block a user