Closed Nobu19800 closed 5 years ago
Describe the bug Managerを終了した場合にshutdownLogger関数が呼ばれない場合がある。
To Reproduce Steps to reproduce the behavior:
Reproducibility 不明
Expected behavior Manager終了時には必ずshutdownLogger関数を呼ぶようにする。
Screenshots or Logs
Environment
Additional context 以下のように終了待ち合わせをshutdownLogger関数の前で実行していることが原因。
shutdownManager(); // 終了待ち合わせ if (m_runner != nullptr) { m_runner->wait(); } else { join(); } m_listeners.manager_.postShutdown(); shutdownLogger();
ただ、待ち合わせする相手のrunManager関数でjoin関数の直前にログの出力を行っているため、join関数の前にshutdownLogger関数を実行するだけでは解決しません。
void Manager::runManager(bool no_block) { if (no_block) { RTC_TRACE(("Manager::runManager(): non-blocking mode")); m_runner = new OrbRunner(m_pORB); m_runner->open(nullptr); } else { RTC_TRACE(("Manager::runManager(): blocking mode")); m_pORB->run(); RTC_TRACE(("Manager::runManager(): ORB was terminated")); join(); } return; }
Describe the bug Managerを終了した場合にshutdownLogger関数が呼ばれない場合がある。
To Reproduce Steps to reproduce the behavior:
Reproducibility 不明
Expected behavior Manager終了時には必ずshutdownLogger関数を呼ぶようにする。
Screenshots or Logs
Environment
Additional context 以下のように終了待ち合わせをshutdownLogger関数の前で実行していることが原因。
ただ、待ち合わせする相手のrunManager関数でjoin関数の直前にログの出力を行っているため、join関数の前にshutdownLogger関数を実行するだけでは解決しません。