Commit 55e5f2c6 authored by neverlord's avatar neverlord

bugfix

parent 4b4d4cc9
...@@ -107,10 +107,10 @@ void abstract_event_based_actor::resume(util::fiber*, scheduler::callback* cb) ...@@ -107,10 +107,10 @@ void abstract_event_based_actor::resume(util::fiber*, scheduler::callback* cb)
self.set(this); self.set(this);
try try
{ {
std::unique_ptr<detail::recursive_queue_node> e; detail::recursive_queue_node* e;
for (;;) for (;;)
{ {
e.reset(m_mailbox.try_pop()); e = m_mailbox.try_pop();
if (!e) if (!e)
{ {
m_state.store(abstract_scheduled_actor::about_to_block); m_state.store(abstract_scheduled_actor::about_to_block);
...@@ -138,11 +138,12 @@ void abstract_event_based_actor::resume(util::fiber*, scheduler::callback* cb) ...@@ -138,11 +138,12 @@ void abstract_event_based_actor::resume(util::fiber*, scheduler::callback* cb)
{ {
case drop_msg: case drop_msg:
{ {
release_node(e.release()); release_node(e);
break; // nop break; // nop
} }
case msg_handled: case msg_handled:
{ {
release_node(e);
if (m_loop_stack.empty()) if (m_loop_stack.empty())
{ {
done_cb(); done_cb();
...@@ -184,7 +185,7 @@ void abstract_event_based_actor::resume(util::fiber*, scheduler::callback* cb) ...@@ -184,7 +185,7 @@ void abstract_event_based_actor::resume(util::fiber*, scheduler::callback* cb)
} }
case cache_msg: case cache_msg:
{ {
m_cache.push_back(std::move(e)); m_cache.emplace_back(e);
break; break;
} }
default: exit(7); // illegal state default: exit(7); // illegal state
......
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