summaryrefslogtreecommitdiff
path: root/program/src/cert_session.cpp
diff options
context:
space:
mode:
authorfengweihao <[email protected]>2021-05-25 15:28:00 +0800
committerfengweihao <[email protected]>2021-05-25 15:28:00 +0800
commit8077136bc7d112727a97ccaee1a9a787e2d67cb8 (patch)
tree1df788d4fe39073b485f2b6b0a29509a1dcdb667 /program/src/cert_session.cpp
parent3f0c7edd354ff798dd7bd9d4ff809a2bd96dc9b3 (diff)
修复线程初始化顺序导致Redis异步建联失败问题v2.1.8-20210604
Diffstat (limited to 'program/src/cert_session.cpp')
-rw-r--r--program/src/cert_session.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/program/src/cert_session.cpp b/program/src/cert_session.cpp
index 8897f96..0753aa7 100644
--- a/program/src/cert_session.cpp
+++ b/program/src/cert_session.cpp
@@ -2015,24 +2015,32 @@ redis_link_detection(uint32_t __attribute__((__unused__)) uid,
x509_forge_thread *threads = (x509_forge_thread *)argv;
unsigned int thread_nu = cfg_instanec()->thread_nu;
- for (tid = 0; tid < (int)thread_nu; tid++) {
+ for (tid = 0; tid < (int)thread_nu; tid++)
+ {
info = threads + tid;
- if(info->sync == NULL){
+ if(info->sync == NULL && info->base != NULL)
+ {
redisFree(info->sync);
xret = redis_sync_init(&info->sync);
- if (xret < 0 || !info->sync){
+ if (xret < 0 || !info->sync)
+ {
mesa_runtime_log(RLOG_LV_FATAL, MODULE_NAME, "[%d]trying to connect sync redis failed", tid);
continue;
- }else{
+ }
+ else
+ {
mesa_runtime_log(RLOG_LV_FATAL, MODULE_NAME, "[%d]trying to connect sync redis success", tid);
}
if(cfg_instanec()->mode)
{
- xret = redis_rsync_init(info->base, &info->cl_ctx);
- if (xret < 0 || !info->cl_ctx){
+ xret = redis_rsync_init(info->base, &info->cl_ctx);
+ if (xret < 0 || !info->cl_ctx)
+ {
mesa_runtime_log(RLOG_LV_FATAL, MODULE_NAME, "[%d]trying to connect rsync redis failed", tid);
- }else{
+ }
+ else
+ {
mesa_runtime_log(RLOG_LV_FATAL, MODULE_NAME, "[%d]trying to connect rsync redis success", tid);
}
}