| 118 | } |
| 119 | |
| 120 | int |
| 121 | InfoRepo::handle_exception(ACE_HANDLE /* fd */) |
| 122 | { |
| 123 | if (shutdown_signal_) { |
| 124 | ACE_DEBUG((LM_DEBUG, |
| 125 | "InfoRepo_Shutdown: shutting down on signal %d\n", |
| 126 | shutdown_signal_)); |
| 127 | } |
| 128 | |
| 129 | // these should occur before ORB::shutdown() since they use the ORB/reactor |
| 130 | this->info_servant_->finalize(); |
| 131 | this->federator_.finalize(); |
| 132 | info_servant_->cleanup_all_built_in_topics(); // Used by federator_->finalize |
| 133 | const DDS::ReturnCode_t shutdown_error = TheServiceParticipant->shutdown(); |
| 134 | if (shutdown_error) { |
| 135 | ACE_ERROR((LM_ERROR, "(%P|%t) ERROR: InfoRepo::handle_exception: " |
| 136 | "TheServiceParticipant->shutdown returned: %C\n", |
| 137 | OpenDDS::DCPS::retcode_to_string(shutdown_error))); |
| 138 | } |
| 139 | this->servant_finalized_ = true; |
| 140 | |
| 141 | this->orb_->shutdown(true); |
| 142 | return 0; |
| 143 | } |
| 144 | |
| 145 | void |
| 146 | InfoRepo::set_shutdown_signal(int which_signal) |
nothing calls this directly
no test coverage detected