From 77e14e6f36d4ed3880c5c6ab28ae59d36c145109 Mon Sep 17 00:00:00 2001 From: bilal614 Date: Mon, 15 Jul 2024 21:13:01 +0200 Subject: [PATCH] Make minor cleanup improvements in scheduler.hpp (#2609) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- include/mbgl/actor/scheduler.hpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/include/mbgl/actor/scheduler.hpp b/include/mbgl/actor/scheduler.hpp index b604f60de..221b1d171 100644 --- a/include/mbgl/actor/scheduler.hpp +++ b/include/mbgl/actor/scheduler.hpp @@ -7,6 +7,7 @@ #include #include +#include namespace mbgl { @@ -70,7 +71,9 @@ public: template void scheduleAndReplyValue(const util::SimpleIdentity tag, TaskFn&& task, ReplyFn&& reply) { assert(GetCurrent()); - scheduleAndReplyValue(tag, task, reply, GetCurrent()->makeWeakPtr()); + static_assert(std::is_invocable_v); + scheduleAndReplyValue( + tag, std::forward(task), std::forward(reply), GetCurrent()->makeWeakPtr()); } /// Wait until there's nothing pending or in process @@ -103,10 +106,13 @@ public: void setExceptionHandler(std::function handler_) { handler = std::move(handler_); } protected: + std::function handler; + +private: template void scheduleAndReplyValue(const util::SimpleIdentity tag, - const TaskFn& task, - const ReplyFn& reply, + TaskFn&& task, + ReplyFn&& reply, mapbox::base::WeakPtr replyScheduler) { schedule(tag, [replyScheduler = std::move(replyScheduler), tag, task, reply] { auto lock = replyScheduler.lock(); @@ -114,8 +120,6 @@ protected: replyScheduler->schedule(tag, [reply, result = task()] { reply(result); }); }); } - - std::function handler; }; /// @brief A TaggedScheduler pairs a scheduler with an identifier. Tasklets submitted via a TaggedScheduler