diff --git a/src/share/ob_ddl_task_executor.cpp b/src/share/ob_ddl_task_executor.cpp index 3321d7da055748ab03bfb3b312cf3c40e147cd3f..d11143efc2fb7e3f0bf0326b2a42306755672cbe 100644 --- a/src/share/ob_ddl_task_executor.cpp +++ b/src/share/ob_ddl_task_executor.cpp @@ -173,17 +173,24 @@ ObDDLTaskExecutor::~ObDDLTaskExecutor() void ObDDLTaskExecutor::stop() { - TG_STOP(tg_id_); + if (tg_id_ >= 0) { + TG_STOP(tg_id_); + } } void ObDDLTaskExecutor::wait() { - TG_WAIT(tg_id_); + if (tg_id_ >= 0) { + TG_WAIT(tg_id_); + } } void ObDDLTaskExecutor::destroy() { - TG_DESTROY(tg_id_); + if (tg_id_ >= 0) { + TG_DESTROY(tg_id_); + tg_id_ = -1; + } task_queue_.destroy(); is_inited_ = false; cond_.destroy();