Files
cppdraft_translate/cppdraft/exec/simple/counting/mem.md
2025-10-25 03:02:53 +03:00

3.9 KiB
Raw Blame History

[exec.simple.counting.mem]

33 Execution control library [exec]

33.14 Execution scope utilities [exec.scope]

33.14.2 Counting Scopes [exec.counting.scopes]

33.14.2.2 Simple Counting Scope [exec.scope.simple.counting]

33.14.2.2.3 Members [exec.simple.counting.mem]

🔗

token get_token() noexcept;

1

#

Returns: An object t of type simple_counting_scope::token such thatt.scope == this is true.

🔗

void close() noexcept;

2

#

Effects: If state is

unused, then changes state to unused-and-closed;

open, then changes state to closed;

open-and-joining, then changes state to closed-and-joining;

otherwise, no effects.

3

#

Postconditions: Any subsequent call to try-associate() on *this returns false.

🔗

[sender](exec.snd.concepts#concept:sender "33.9.3Sender concepts[exec.snd.concepts]") auto join() noexcept;

4

#

Returns: make-sender(scope-join-t(), this).

🔗

bool try-associate() noexcept;

5

#

Effects: If count is equal to max_associations, then no effects.

Otherwise, if state is

unused, then increments count and changes state to open;

open or open-and-joining, then increments count;

otherwise, no effects.

6

#

Returns: true if count was incremented, false otherwise.

🔗

void disassociate() noexcept;

7

#

Preconditions: count is greater than zero.

8

#

Effects: Decrements count.

If count is zero after decrementing andstate is open-and-joining or closed-and-joining, changes state to joined and calls complete() on all objects registered with *this.

[Note 1:

Calling complete() on any registered object can cause *this to be destroyed.

— end note]

🔗

template<class State> bool start-join-sender(State& st) noexcept;

9

#

Effects: If state is

unused, unused-and-closed, or joined, then changes state to joined and returns true;

open or open-and-joining, then changes state to open-and-joining, registers st with *this and returns false;

closed or closed-and-joining, then changes state to closed-and-joining, registers st with *this and returns false.