[exec.get.delegation.scheduler]

# 33 Execution control library [[exec]](./#exec)

## 33.5 Queries [[exec.queries]](exec.queries#exec.get.delegation.scheduler)

### 33.5.7 execution​::​get_delegation_scheduler [exec.get.delegation.scheduler]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L970)

get_delegation_scheduler asks a queryable object for a scheduler
that can be used to delegate work to
for the purpose of forward progress delegation ([[intro.progress]](intro.progress "6.10.2.3 Forward progress"))[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L975)

The name get_delegation_scheduler denotes a query object[.](#2.sentence-1)

For a subexpression env,get_delegation_scheduler(env) is expression-equivalent to*MANDATE-NOTHROW*(*AS-CONST*(env).query(get_delegation_scheduler))[.](#2.sentence-2)

*Mandates*: If the expression above is well-formed,
its type satisfies [scheduler](exec.sched#concept:scheduler "33.6 Schedulers [exec.sched]")[.](#2.sentence-3)

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L985)

forwarding_query(execution​::​get_delegation_scheduler) is
a core constant expression and has value true[.](#3.sentence-1)
