A simple patch to prove the problem..
$svn diff sql/threadpool_unix.cc Index: sql/threadpool_unix.cc =================================================================== --- sql/threadpool_unix.cc (revision 7085) +++ sql/threadpool_unix.cc (working copy) @@ -444,7 +444,8 @@
return (mode == TP_HIGH_PRIO_MODE_STATEMENTS) || (mode == TP_HIGH_PRIO_MODE_TRANSACTIONS && - c->tickets > 0 && thd_is_transaction_active(c->thd)); + c->tickets > 0 && thd_is_transaction_active(c->thd)) || + c->thd->global_read_lock.is_acquired(); }
} // namespace
A simple patch to prove the problem..
$svn diff sql/threadpool_ unix.cc unix.cc ======= ======= ======= ======= ======= ======= ======= ======= ==== unix.cc (revision 7085) unix.cc (working copy)
Index: sql/threadpool_
=======
--- sql/threadpool_
+++ sql/threadpool_
@@ -444,7 +444,8 @@
return (mode == TP_HIGH_ PRIO_MODE_ STATEMENTS) || PRIO_MODE_ TRANSACTIONS && transaction_ active( c->thd) ); transaction_ active( c->thd) ) || >global_ read_lock. is_acquired( );
(mode == TP_HIGH_
- c->tickets > 0 && thd_is_
+ c->tickets > 0 && thd_is_
+ c->thd-
}
} // namespace