refactor: make more object global
This commit is contained in:
parent
fb004309c1
commit
d751ff6aaa
|
@ -14,22 +14,40 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define _DEFAULT_SOURCE
|
#define _DEFAULT_SOURCE
|
||||||
#include "dmUtil.h"
|
#include "dmMgmt.h"
|
||||||
|
|
||||||
static int8_t once = DND_ENV_INIT;
|
static struct {
|
||||||
|
int8_t once;
|
||||||
|
EDndProcType ptype;
|
||||||
|
EDndNodeType rtype;
|
||||||
|
EDndEvent event;
|
||||||
|
EDndRunStatus status;
|
||||||
|
SStartupInfo startup;
|
||||||
|
SDnodeTrans trans;
|
||||||
|
SUdfdData udfdData;
|
||||||
|
TdThreadMutex mutex;
|
||||||
|
TdFilePtr lockfile;
|
||||||
|
SDnodeData data;
|
||||||
|
SMgmtWrapper wrappers[NODE_END];
|
||||||
|
} global;
|
||||||
|
|
||||||
int32_t dmInit() {
|
static int32_t dmCheckRepeatInit() {
|
||||||
dInfo("start to init env");
|
if (atomic_val_compare_exchange_8(&global.once, DND_ENV_INIT, DND_ENV_READY) != DND_ENV_INIT) {
|
||||||
if (atomic_val_compare_exchange_8(&once, DND_ENV_INIT, DND_ENV_READY) != DND_ENV_INIT) {
|
|
||||||
dError("env is already initialized");
|
dError("env is already initialized");
|
||||||
terrno = TSDB_CODE_REPEAT_INIT;
|
terrno = TSDB_CODE_REPEAT_INIT;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t dmInitSystem() {
|
||||||
taosIgnSIGPIPE();
|
taosIgnSIGPIPE();
|
||||||
taosBlockSIGPIPE();
|
taosBlockSIGPIPE();
|
||||||
taosResolveCRC();
|
taosResolveCRC();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t dmInitMonitor() {
|
||||||
SMonCfg monCfg = {0};
|
SMonCfg monCfg = {0};
|
||||||
monCfg.maxLogs = tsMonitorMaxLogs;
|
monCfg.maxLogs = tsMonitorMaxLogs;
|
||||||
monCfg.port = tsMonitorPort;
|
monCfg.port = tsMonitorPort;
|
||||||
|
@ -39,17 +57,31 @@ int32_t dmInit() {
|
||||||
dError("failed to init monitor since %s", terrstr());
|
dError("failed to init monitor since %s", terrstr());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t dmInit() {
|
||||||
|
dInfo("start to init env");
|
||||||
|
if (dmCheckRepeatInit() != 0) return -1;
|
||||||
|
if (dmInitSystem() != 0) return -1;
|
||||||
|
if (dmInitMonitor() != 0) return -1;
|
||||||
|
// if (dmInit)
|
||||||
|
|
||||||
dInfo("env is initialized");
|
dInfo("env is initialized");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t dmCheckRepeatCleanup() {
|
||||||
|
if (atomic_val_compare_exchange_8(&global.once, DND_ENV_READY, DND_ENV_CLEANUP) != DND_ENV_READY) {
|
||||||
|
dError("env is already cleaned up");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void dmCleanup() {
|
void dmCleanup() {
|
||||||
dDebug("start to cleanup env");
|
dDebug("start to cleanup env");
|
||||||
if (atomic_val_compare_exchange_8(&once, DND_ENV_READY, DND_ENV_CLEANUP) != DND_ENV_READY) {
|
if (dmCheckRepeatCleanup != 0) return;
|
||||||
dError("env is already cleaned up");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
monCleanup();
|
monCleanup();
|
||||||
syncCleanUp();
|
syncCleanUp();
|
||||||
|
|
Loading…
Reference in New Issue