* Destroy the AsyncMessenger. Pretty simple since all the work is done * elsewhere. */
| 443 | * elsewhere. |
| 444 | */ |
| 445 | AsyncMessenger::~AsyncMessenger() |
| 446 | { |
| 447 | cct->modify_msgr_hook( |
| 448 | []() -> AdminSocketHook* { return nullptr; }, |
| 449 | [&](AdminSocketHook* ptr) { |
| 450 | if (auto hook = dynamic_cast<AsyncMessengerSocketHook*>(ptr)) { |
| 451 | hook->remove_messenger(*this); |
| 452 | } else { |
| 453 | ceph_abort( |
| 454 | "BUG: messenger hook obj set, but not of type " |
| 455 | "AsyncMessengerSocketHook"); |
| 456 | } |
| 457 | }); |
| 458 | delete reap_handler; |
| 459 | ceph_assert(!did_bind); // either we didn't bind or we shut down the Processor |
| 460 | for (auto &&p : processors) |
| 461 | delete p; |
| 462 | } |
| 463 | |
| 464 | void AsyncMessenger::ready() |
| 465 | { |
nothing calls this directly
no test coverage detected