diff --git a/include/exec/task.hpp b/include/exec/task.hpp index 2771399f8..5f86c7975 100644 --- a/include/exec/task.hpp +++ b/include/exec/task.hpp @@ -117,12 +117,15 @@ namespace experimental::execution template constexpr explicit __default_task_context_impl(_ParentPromise& __parent) noexcept { - if constexpr (__with_affinity && __parent_promise_has_start_scheduler<_ParentPromise>()) + if constexpr (__with_affinity) { - // get_start_scheduler is used here to get the parent's "current" scheduler, - // which is the one on which this task has been started (i.e., co_await-ed). - auto __parent_sched = get_start_scheduler(get_env(__parent)); - this->__scheduler_ = __parent_sched; + if constexpr (__parent_promise_has_start_scheduler<_ParentPromise>()) + { + // get_start_scheduler is used here to get the parent's "current" scheduler, + // which is the one on which this task has been started (i.e., co_await-ed). + auto __parent_sched = get_start_scheduler(get_env(__parent)); + this->__scheduler_ = __parent_sched; + } } }