[exec.run.loop.ctor] # 33 Execution control library [[exec]](./#exec) ## 33.12 Execution contexts [[exec.ctx]](exec.ctx#exec.run.loop.ctor) ### 33.12.1 execution​::​run_loop [[exec.run.loop]](exec.run.loop#ctor) #### 33.12.1.3 Constructor and destructor [exec.run.loop.ctor] [🔗](#lib:run_loop,constructor) `run_loop() noexcept; ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L6489) *Postconditions*: *count* is 0 and *state* is *starting*[.](#1.sentence-1) [🔗](#lib:run_loop,destructor) `~run_loop(); ` [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L6500) *Effects*: If *count* is not 0 or if *state* is *running*, invokes terminate ([[except.terminate]](except.terminate "14.6.2 The std​::​terminate function"))[.](#2.sentence-1) Otherwise, has no effects[.](#2.sentence-2)