std::atomic_ref<T>::notify_all
void notify_all() const noexcept; | (constexpr с C++26) |
Выполняет атомарные операции уведомления.
Разблокирует все потоки, заблокированные в операциях атомарного ожидания (т. е. wait()) на *ptr, если такие есть; в противном случае ничего не делает. Эта перегрузка участвует в разрешении перегрузки только в том случае, если std::is_const_v<T> — это false.
Примечания
Такая форма обнаружения изменений часто эффективнее простого опроса или чистых спин-блокировок.
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Поведение согласно опубликованному стандарту | Корректное поведение |
|---|---|---|---|
|
LWG 3508 (P3323R1) | C++20 |
notify_all не имело смысла для constT | ограничено приёмом только неконстантных T |
См. также
| блокирует поток до получения уведомления и изменения атомарного значения (открытая функция-член) |
|
|
(C++20)(C++20) | блокирует поток до получения уведомления и изменения атомарного значения (шаблон функции) |
|
(C++20) | уведомляет поток, заблокированный в atomic_wait (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/atomic/atomic_ref/notify_all