diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-10-22 13:27:18 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-10-22 13:27:18 +0300 |
commit | 46957a6a77518b579c6c8e1345666f84a5a59455 (patch) | |
tree | c0e463f14123cd09bb4d5854d32577e44b3a9827 /sql/threadpool_common.cc | |
parent | 1619ae899099c4934f3b5919b2398c95a7cacc94 (diff) | |
parent | e3d692aa092a76415ce1ce0e9662338873d84abb (diff) | |
download | mariadb-git-46957a6a77518b579c6c8e1345666f84a5a59455.tar.gz |
Merge 10.3 into 10.4
Diffstat (limited to 'sql/threadpool_common.cc')
-rw-r--r-- | sql/threadpool_common.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/threadpool_common.cc b/sql/threadpool_common.cc index 00c28be6f9b..f40a958e62a 100644 --- a/sql/threadpool_common.cc +++ b/sql/threadpool_common.cc @@ -323,6 +323,16 @@ static void handle_wait_timeout(THD *thd) thd->net.error= 2; } +/** Check if some client data is cached in thd->net or thd->net.vio */ +static bool has_unread_data(THD* thd) +{ + NET *net= &thd->net; + if (net->compress && net->remain_in_buf) + return true; + Vio *vio= net->vio; + return vio->has_data(vio); +} + /** Process a single client request or a single batch. @@ -357,7 +367,6 @@ static int threadpool_process_request(THD *thd) */ for(;;) { - Vio *vio; thd->net.reading_or_writing= 0; if (mysql_audit_release_required(thd)) mysql_audit_release(thd); @@ -373,8 +382,7 @@ static int threadpool_process_request(THD *thd) set_thd_idle(thd); - vio= thd->net.vio; - if (!vio->has_data(vio)) + if (!has_unread_data(thd)) { /* More info on this debug sync is in sql_parse.cc*/ DEBUG_SYNC(thd, "before_do_command_net_read"); |