Стандартная библиотека заголовок <rcu> (C++26)
Этот заголовок является частью библиотеки поддержки потоков thread support.
Классы |
|
|
(C++26) | позволяет защитить объект с помощью RCU (шаблон класса) |
|
(C++26) | предоставляет области защиты RCU (класс) |
Функции |
|
|
(C++26) | возвращает ссылку на объект статической длительности типа std::rcu_domain (функция) |
|
(C++26) | блокирует до тех пор, пока область защиты не разблокируется в области RCU (функция) |
|
(C++26) | может оценить запланированные операции в области RCU и блокируется до тех пор, пока все предыдущие оценки не будут завершены (функция) |
|
(C++26) | планирует оценку указанной функции в области RCU, потенциально выделяет память и вызывает запланированные оценки (шаблон функции) |
Синопсис
namespace std {
template<class T, class D = default_delete<T>> class rcu_obj_base;
class rcu_domain;
rcu_domain& rcu_default_domain() noexcept;
void rcu_synchronize(rcu_domain& dom = rcu_default_domain()) noexcept;
void rcu_barrier(rcu_domain& dom = rcu_default_domain()) noexcept;
template<class T, class D = default_delete<T>>
void rcu_retire(T* p, D d = D(), rcu_domain& dom = rcu_default_domain());
} Шаблон класса std::rcu_obj_base
namespace std {
template<class T, class D = default_delete<T>>
class rcu_obj_base {
public:
void retire(D d = D(), rcu_domain& dom = rcu_default_domain()) noexcept;
protected:
rcu_obj_base() = default;
rcu_obj_base(const rcu_obj_base&) = default;
rcu_obj_base(rcu_obj_base&&) = default;
rcu_obj_base& operator=(const rcu_obj_base&) = default;
rcu_obj_base& operator=(rcu_obj_base&&) = default;
~rcu_obj_base() = default;
private:
D deleter; // exposition only
};
} Класс std::rcu_domain
namespace std {
class rcu_domain {
public:
rcu_domain(const rcu_domain&) = delete;
rcu_domain& operator=(const rcu_domain&) = delete;
void lock() noexcept;
bool try_lock() noexcept;
void unlock() noexcept;
};
}
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/header/rcu