std::atomic_ref<T>::notify_one
void notify_one() const noexcept; | (constexpr since C++26) |
Выполняет атомарные операции уведомления.
Если существует поток, заблокированный в атомарной операции ожидания (то есть wait()) на *ptr, разблокируется как минимум один такой поток; в противном случае ничего не происходит. Эта перегрузка участвует в разрешении перегрузок только в том случае, если std::is_const_v<T> имеет значение false.
Примечания
Такой способ обнаружения изменений зачастую эффективнее простого опроса или использования исключительно спин-блокировок.
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были ретроактивно применены к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Опубликованное поведение | Корректное поведение |
|---|---|---|---|
|
LWG 3508 (P3323R1) | C++20 |
notify_one не имело смысла для 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_one