void forwarding_actor_proxy::forward_msg(const actor_addr& sender,
                                         message_id mid, message msg) {
  BOOST_ACTOR_LOG_TRACE(BOOST_ACTOR_ARG(id()) << ", " << BOOST_ACTOR_TSARG(sender) << ", "
                              << BOOST_ACTOR_MARG(mid, integer_value) << ", "
                              << BOOST_ACTOR_TSARG(msg));
  shared_lock<detail::shared_spinlock> guard_(manager_mtx_);
  if (manager_) manager_->enqueue(invalid_actor_addr, invalid_message_id,
                                  make_message(forward_atom::value, sender,
                                               address(), mid, std::move(msg)),
                                  nullptr);
}
Ejemplo n.º 2
0
void local_actor::join(const group& what) {
    BOOST_ACTOR_LOG_TRACE(BOOST_ACTOR_TSARG(what));
    if (what && m_subscriptions.count(what) == 0) {
        BOOST_ACTOR_LOG_DEBUG("join group: " << to_string(what));
        m_subscriptions.insert(std::make_pair(what, what->subscribe(this)));
    }
}