diff --git a/src/rpp/rpp/schedulers/current_thread.hpp b/src/rpp/rpp/schedulers/current_thread.hpp index b0d60c43e..3fa99c84b 100644 --- a/src/rpp/rpp/schedulers/current_thread.hpp +++ b/src/rpp/rpp/schedulers/current_thread.hpp @@ -129,8 +129,8 @@ namespace rpp::schedulers } continue; } - - get_queue()->emplace(top->handle_advanced_call(res.value()), std::move(top)); + const auto tp = top->handle_advanced_call(res.value()); + get_queue()->emplace(tp, std::move(top)); } } break; diff --git a/src/rpp/rpp/schedulers/new_thread.hpp b/src/rpp/rpp/schedulers/new_thread.hpp index 9fa379bb8..c48925071 100644 --- a/src/rpp/rpp/schedulers/new_thread.hpp +++ b/src/rpp/rpp/schedulers/new_thread.hpp @@ -109,7 +109,8 @@ namespace rpp::schedulers if (res->can_run_immediately() && !state->has_fresh_data.load()) continue; - state->queue.emplace(top->handle_advanced_call(res.value()), std::move(top)); + const auto tp = top->handle_advanced_call(res.value()); + state->queue.emplace(tp, std::move(top)); } } break;