Archivo de encabezado de la biblioteca estándar <rcu> (C++26)
De cppreference.com
Este archivo de encabezado es parte de la biblioteca de apoyo de hilos/subprocesos.
Clases | ||
(C++26) |
Permite que un objeto sea protegido por RCU. (plantilla de clase) | |
(C++26) |
Proporciona regiones de protección RCU. (clase) | |
Funciones | ||
(C++26) |
Devuelve una referencia a un objeto de duración estática del tipo std::rcu_domain . (función) | |
(C++26) |
Se bloquea hasta que se desbloquee una región de protección en un dominio RCU. (función) | |
(C++26) |
Puede evaluar operaciones programadas en un dominio RCU y se bloquea hasta que se completen todas las evaluaciones anteriores. (función) | |
(C++26) |
Planifica la evaluación de una función específica en un dominio RCU, potencialmente asignando memoria e invocando evaluaciones planificadas. (plantilla de función) |
[editar] Sinopsis
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()); }
[editar] Plantilla de clase 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; // solo para exposición }; }
[editar] Clase 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; }; }