[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)
