Skip to main content

concurrent/
lib.rs

1// Copyright 2026 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
5#![no_std]
6
7#[cfg(test)]
8extern crate std;
9
10pub mod chainlock;
11pub mod chainlock_guard;
12pub mod chainlock_transaction;
13mod common;
14pub mod copy;
15mod seqlock;
16mod seqlock_payload;
17
18pub use chainlock::{
19    AllowFinalized, ChainLock, RecordBackoff, Result as ChainLockResult, acquire_both_or_backoff,
20};
21pub use chainlock_guard::ChainLockGuard;
22pub use chainlock_transaction::{
23    AccountingSelector, AccountingStorage, AccountingStorageDisabled, AccountingStorageEnabled,
24    Action, AtomicToken, Bool, ChainLockTransaction, ChainLockTransactionToken, ContentionState,
25    DONE, DoneType, IntoTransactionResult, Option as TransactionOption, SavedState,
26    SelectAccounting, SelectTracing, State as TransactionState, StateOption, StateSaver, Token,
27    TraceStorage, TraceStorageDisabled, TraceStorageEnabled, TracingSelector, Transaction,
28    TransactionHooks, TransactionResult,
29};
30pub use common::{SYNC_OPT_ACQ_REL_OPS, SYNC_OPT_FENCE, SYNC_OPT_NONE, SyncOpt};
31pub use copy::{
32    MAX_TRANSFER_GRANULARITY, WellDefinedCopyable, well_defined_copy_from, well_defined_copy_to,
33};
34pub use seqlock::{ReadTransactionToken, SeqLock, SequenceNumber, WriteGuard};
35pub use seqlock_payload::SeqLockPayload;