| 462 | } |
| 463 | |
| 464 | void AsyncMessenger::ready() |
| 465 | { |
| 466 | ldout(cct,10) << __func__ << " " << get_myaddrs() << dendl; |
| 467 | |
| 468 | stack->ready(); |
| 469 | if (pending_bind) { |
| 470 | int err = bindv(pending_bind_addrs, saved_public_addrs); |
| 471 | if (err) { |
| 472 | lderr(cct) << __func__ << " postponed bind failed" << dendl; |
| 473 | ceph_abort(); |
| 474 | } |
| 475 | } |
| 476 | |
| 477 | std::lock_guard l{lock}; |
| 478 | for (auto &&p : processors) |
| 479 | p->start(); |
| 480 | dispatch_queue.start(); |
| 481 | } |
| 482 | |
| 483 | int AsyncMessenger::shutdown() |
| 484 | { |