Commit 60c9de15 authored by Dominik Charousset's avatar Dominik Charousset

fix bug in synchronous response handling

this patch fixed a bug that allowed 'EXITED' messages to pass
synchronous response messages
parent b8b594cb
...@@ -94,8 +94,12 @@ void default_actor_proxy::forward_msg(const actor_ptr& sender, ...@@ -94,8 +94,12 @@ void default_actor_proxy::forward_msg(const actor_ptr& sender,
switch (m_pending_requests.enqueue(new_req_info(sender, mid))) { switch (m_pending_requests.enqueue(new_req_info(sender, mid))) {
case intrusive::queue_closed: { case intrusive::queue_closed: {
if (sender) { if (sender) {
detail::sync_request_bouncer f{this, exit_reason()}; intrusive_ptr<default_actor_proxy> _this{this};
auto rsn = exit_reason();
m_proto->run_later([_this,rsn,sender,mid] {
detail::sync_request_bouncer f{_this.get(), rsn};
f(sender.get(), mid); f(sender.get(), mid);
});
} }
return; // no need to forward message return; // no need to forward message
} }
......
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