Commit 9d66698a authored by Dominik Charousset's avatar Dominik Charousset

Prevent spurious timeouts while iterating mailbox

parent e12717da
...@@ -381,6 +381,10 @@ invoke_message_result local_actor::invoke_message(mailbox_element_ptr& ptr, ...@@ -381,6 +381,10 @@ invoke_message_result local_actor::invoke_message(mailbox_element_ptr& ptr,
return im_skipped; return im_skipped;
case msg_type::ordinary: case msg_type::ordinary:
if (!awaited_id.valid()) { if (!awaited_id.valid()) {
auto had_timeout = has_timeout();
if (had_timeout) {
has_timeout(false);
}
ptr.swap(current_mailbox_element()); ptr.swap(current_mailbox_element());
auto mid = current_mailbox_element()->mid; auto mid = current_mailbox_element()->mid;
auto res = post_process_invoke_res(this, mid, auto res = post_process_invoke_res(this, mid,
...@@ -389,6 +393,10 @@ invoke_message_result local_actor::invoke_message(mailbox_element_ptr& ptr, ...@@ -389,6 +393,10 @@ invoke_message_result local_actor::invoke_message(mailbox_element_ptr& ptr,
if (res) { if (res) {
return im_success; return im_success;
} }
// restore timeout if necessary
if (had_timeout) {
has_timeout(true);
}
} }
CAF_LOG_DEBUG_IF(awaited_id.valid(), CAF_LOG_DEBUG_IF(awaited_id.valid(),
"ignored message; await response: " "ignored message; await response: "
......
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