Files
2025-10-25 03:02:53 +03:00

48 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[stopcallback.cons]
# 32 Concurrency support library [[thread]](./#thread)
## 32.3 Stop tokens [[thread.stoptoken]](thread.stoptoken#stopcallback.cons)
### 32.3.6 Class template stop_callback [[stopcallback]](stopcallback#cons)
#### 32.3.6.2 Constructors and destructor [stopcallback.cons]
[🔗](#lib:stop_callback,constructor)
`template<class Initializer>
explicit stop_callback(const stop_token& st, Initializer&& init)
noexcept(is_nothrow_constructible_v<CallbackFn, Initializer>);
template<class Initializer>
explicit stop_callback(stop_token&& st, Initializer&& init)
noexcept(is_nothrow_constructible_v<CallbackFn, Initializer>);
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L1103)
*Constraints*: CallbackFn and Initializer satisfy[constructible_from](concept.constructible#concept:constructible_from "18.4.11Concept constructible_­from[concept.constructible]")<CallbackFn, Initializer>[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L1108)
*Effects*: Initializes *callback-fn* with std::forward<Initializer>(init) and executes a stoppable callback registration ([[stoptoken.concepts]](stoptoken.concepts "32.3.3Stop token concepts"))[.](#2.sentence-1)
If a callback is registered with st's shared stop state,
then *this acquires shared ownership of that stop state[.](#2.sentence-2)
[🔗](#lib:stop_callback,destructor)
`~stop_callback();
`
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L1122)
*Effects*: Executes a stoppable callback deregistration ([[stoptoken.concepts]](stoptoken.concepts "32.3.3Stop token concepts")) and
releases ownership of the stop state, if any[.](#3.sentence-1)