summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--storage/innobase/srv/srv0srv.cc19
1 files changed, 12 insertions, 7 deletions
diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index b3d40dd5abf..c5a8265d803 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -2011,13 +2011,18 @@ srv_get_active_thread_type(void)
srv_sys_mutex_exit();
- /* Check only on shutdown. */
- if (ret == SRV_NONE
- && srv_shutdown_state != SRV_SHUTDOWN_NONE
- && trx_purge_state() != PURGE_STATE_DISABLED
- && trx_purge_state() != PURGE_STATE_EXIT) {
-
- ret = SRV_PURGE;
+ if (ret == SRV_NONE && srv_shutdown_state != SRV_SHUTDOWN_NONE) {
+ /* Check only on shutdown. */
+ switch (trx_purge_state()) {
+ case PURGE_STATE_INIT:
+ case PURGE_STATE_RUN:
+ case PURGE_STATE_STOP:
+ ret = SRV_PURGE;
+ break;
+ case PURGE_STATE_DISABLED:
+ case PURGE_STATE_EXIT:
+ break;
+ }
}
return(ret);