Commit 2ad44eb4 authored by Dominik Charousset's avatar Dominik Charousset

fixed MONITOR message delivery

parent 4368dde2
...@@ -74,9 +74,9 @@ actor_proxy_ptr actor_proxy_cache::get_impl(const key_tuple& key, bool do_put) { ...@@ -74,9 +74,9 @@ actor_proxy_ptr actor_proxy_cache::get_impl(const key_tuple& key, bool do_put) {
} }
} }
if (!do_put) { return nullptr; } if (!do_put) { return nullptr; }
process_information_ptr pip(new process_information(std::get<1>(key), process_information_ptr peer(new process_information(std::get<1>(key),
std::get<0>(key))); std::get<0>(key)));
actor_proxy_ptr result(new actor_proxy(std::get<2>(key), pip)); actor_proxy_ptr result(new actor_proxy(std::get<2>(key), peer));
{ // lifetime scope of exclusive guard { // lifetime scope of exclusive guard
std::lock_guard<util::shared_spinlock> guard{m_lock}; std::lock_guard<util::shared_spinlock> guard{m_lock};
auto i = m_entries.find(key); auto i = m_entries.find(key);
...@@ -88,11 +88,12 @@ actor_proxy_ptr actor_proxy_cache::get_impl(const key_tuple& key, bool do_put) { ...@@ -88,11 +88,12 @@ actor_proxy_ptr actor_proxy_cache::get_impl(const key_tuple& key, bool do_put) {
result->attach_functor([result](std::uint32_t) { result->attach_functor([result](std::uint32_t) {
get_actor_proxy_cache().erase(result); get_actor_proxy_cache().erase(result);
}); });
middleman_enqueue(pip, auto pself = process_information::get();
middleman_enqueue(peer,
nullptr, nullptr,
nullptr, nullptr,
make_any_tuple(atom("MONITOR"), make_any_tuple(atom("MONITOR"),
pip, pself,
std::get<2>(key))); std::get<2>(key)));
return result; return result;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment