diff options
-rw-r--r-- | storage/innobase/srv/srv0srv.cc | 19 |
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); |