Просмотр исходного кода

修复TiRay探测器重连逻辑只会重连一次的问题

lwk 1 неделя назад
Родитель
Сommit
3584aa8ddc
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      Detector/TiRay/CCOS.Dev.FPD.TiRayDR/Detector_TiRayDR.cpp

+ 6 - 0
Detector/TiRay/CCOS.Dev.FPD.TiRayDR/Detector_TiRayDR.cpp

@@ -1615,6 +1615,11 @@ void Detector_TiRayDR::OnReconnectFPD()
 			m_hReconnectThread = 0;
 			m_bReconnectThreadRunning = false;
 		}
+		else {
+			// 分离线程,使其在退出时自动释放资源
+			pthread_detach(m_hReconnectThread);
+			FINFO("Reconnect thread created and detached successfully");
+		}
 	}
 	FINFO("OnReconnectFPD end");
 }
@@ -3077,6 +3082,7 @@ void* Detector_TiRayDR::onReconnectThread(PVOID pvoid)
 		usleep(pThis->m_nReconnectTimePeriod*1000);
 	}
 	pThis->m_bReconnectThreadRunning = false;
+	pThis->m_hReconnectThread = 0;  // 重置线程句柄,允许再次创建重连线程
 	FINFO("Leave reconnect detector thread");
 	return 0;
 }