Skip to main content

fuchsia_rcu/
lib.rs

1// Copyright 2025 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5mod atomic_stack;
6mod rcu_arc;
7mod rcu_box;
8mod rcu_droppable;
9mod rcu_droppable_arc;
10mod rcu_option_arc;
11mod rcu_option_box;
12mod rcu_ptr;
13mod rcu_read_scope;
14mod rcu_weak;
15mod read_counters;
16mod state_machine;
17
18pub use fuchsia_rcu_derive::RcuDroppable;
19pub use rcu_arc::RcuArc;
20pub use rcu_box::RcuBox;
21pub use rcu_droppable::RcuDroppable;
22pub use rcu_droppable_arc::RcuDroppableArc;
23pub use rcu_option_arc::RcuOptionArc;
24pub use rcu_option_box::RcuOptionBox;
25pub use rcu_ptr::RcuReadGuard;
26pub use rcu_read_scope::RcuReadScope;
27pub use rcu_weak::RcuWeak;
28pub use state_machine::{
29    RcuThreadRegistration, rcu_advancer_wait_for_work, rcu_advancer_wake, rcu_drop,
30    rcu_run_callbacks, rcu_synchronize, register_thread, unregister_thread,
31    with_thread_block_counters,
32};
33
34pub mod subtle {
35    pub use super::rcu_droppable_arc::{rcu_ptr_to_arc, rcu_ptr_upgrade};
36    pub use super::rcu_ptr::{RcuPtr, RcuPtrRef};
37}