From 1c963ec76453aad6b192fb00286a25c191b00ec4 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Mon, 10 Jan 2022 10:01:56 +0000 Subject: [PATCH] fix stuck --- include/util/tmacro.h | 6 +----- source/dnode/vnode/impl/inc/vnodeDef.h | 1 - source/dnode/vnode/impl/src/vnodeMgr.c | 7 +++++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/include/util/tmacro.h b/include/util/tmacro.h index 5ed051c021..297c37d62a 100644 --- a/include/util/tmacro.h +++ b/include/util/tmacro.h @@ -26,14 +26,10 @@ extern "C" { #define TD_MOD_UNINITIALIZED 0 #define TD_MOD_INITIALIZED 1 -#define TD_MOD_UNCLEARD 0 -#define TD_MOD_CLEARD 1 - typedef int8_t td_mode_flag_t; #define TD_CHECK_AND_SET_MODE_INIT(FLAG) atomic_val_compare_exchange_8((FLAG), TD_MOD_UNINITIALIZED, TD_MOD_INITIALIZED) - -#define TD_CHECK_AND_SET_MOD_CLEAR(FLAG) atomic_val_compare_exchange_8((FLAG), TD_MOD_UNCLEARD, TD_MOD_CLEARD) +#define TD_CHECK_AND_SET_MOD_CLEAR(FLAG) atomic_val_compare_exchange_8((FLAG), TD_MOD_INITIALIZED, TD_MOD_UNINITIALIZED) #define TD_IS_NULL(PTR) ((PTR) == NULL) diff --git a/source/dnode/vnode/impl/inc/vnodeDef.h b/source/dnode/vnode/impl/inc/vnodeDef.h index a517dda882..e70e891794 100644 --- a/source/dnode/vnode/impl/inc/vnodeDef.h +++ b/source/dnode/vnode/impl/inc/vnodeDef.h @@ -49,7 +49,6 @@ typedef struct SVnodeTask { typedef struct SVnodeMgr { td_mode_flag_t vnodeInitFlag; - td_mode_flag_t vnodeClearFlag; // For commit bool stop; uint16_t nthreads; diff --git a/source/dnode/vnode/impl/src/vnodeMgr.c b/source/dnode/vnode/impl/src/vnodeMgr.c index fae96ae22c..784d1abb60 100644 --- a/source/dnode/vnode/impl/src/vnodeMgr.c +++ b/source/dnode/vnode/impl/src/vnodeMgr.c @@ -15,7 +15,7 @@ #include "vnodeDef.h" -SVnodeMgr vnodeMgr = {.vnodeInitFlag = TD_MOD_UNINITIALIZED, .vnodeClearFlag = TD_MOD_UNCLEARD, .stop = false}; +SVnodeMgr vnodeMgr = {.vnodeInitFlag = TD_MOD_UNINITIALIZED}; static void* loop(void* arg); @@ -24,6 +24,8 @@ int vnodeInit(uint16_t nthreads) { return 0; } + vnodeMgr.stop = false; + // Start commit handers if (nthreads > 0) { vnodeMgr.nthreads = nthreads; @@ -38,6 +40,7 @@ int vnodeInit(uint16_t nthreads) { for (uint16_t i = 0; i < nthreads; i++) { pthread_create(&(vnodeMgr.threads[i]), NULL, loop, NULL); + pthread_setname_np(vnodeMgr.threads[i], "VND Commit Thread"); } } else { // TODO: if no commit thread is set, then another mechanism should be @@ -53,7 +56,7 @@ int vnodeInit(uint16_t nthreads) { } void vnodeClear() { - if (TD_CHECK_AND_SET_MOD_CLEAR(&(vnodeMgr.vnodeClearFlag)) == TD_MOD_CLEARD) { + if (TD_CHECK_AND_SET_MOD_CLEAR(&(vnodeMgr.vnodeInitFlag)) == TD_MOD_UNINITIALIZED) { return; }