Skip to main content

ax_task/thread/
mod.rs

1//! Thread identity, lifecycle and generation-valid management handles.
2
3pub mod current;
4mod current_token;
5mod handle;
6mod id;
7mod park;
8pub(crate) mod pi;
9mod pi_tree;
10
11pub(crate) mod spec;
12mod state;
13mod state_kind;
14pub(crate) mod tick_work;
15
16pub use current_token::CurrentThreadToken;
17pub(crate) use handle::{OwnedThreadSchedulerExit, ThreadCore, ThreadCoreInit, WakeIntent};
18pub use handle::{
19    ThreadHandle, ThreadRuntimeSnapshot, ThreadWakeBatch, ThreadWakeHandle, WakeResult,
20    WeakThreadHandle,
21};
22pub use id::ThreadId;
23pub use park::{ParkCommit, ParkPrepare, ParkTicket};
24pub(crate) use park::{WaitWakeClaim, WaitWakeClaimState, WaitWakeDelivery};
25pub(crate) use pi::{
26    PiMutexWaiters, PiWaitRegistration, PiWaitState, drop_pi_mutex_wait_handle,
27    lock_pi_mutex_waiters, lock_raw_pi_mutex_waiters, try_lock_raw_pi_mutex_waiters,
28};
29pub(crate) use pi_tree::*;
30pub use spec::{
31    RunningPolicyAppliedHook, SwitchReason, ThreadExtension, ThreadExtensionBorrow,
32    ThreadExtensionLease, ThreadExtensionOps, ThreadExtensionView, ThreadSpec,
33};
34pub(crate) use state::{ParkPublication, ThreadLifecycle, WakePublication, transition_is_valid};
35pub use state_kind::ThreadState;
36pub(crate) use tick_work::{SchedulerTickWork, SchedulerTickWorkClaim};
37
38pub(crate) use crate::sched::{
39    affinity::ThreadAffinityCompletion,
40    policy::{
41        DEADLINE_CLASS_RANK, DeadlineEntity, DeadlineServer, REALTIME_CLASS_RANK, SchedulingKey,
42        SchedulingUrgency,
43    },
44};
45pub use crate::thread::{
46    error::TaskError,
47    spawn::{DEFAULT_KERNEL_THREAD_STACK_SIZE, ThreadBuilder},
48};
49
50pub(crate) mod error;
51
52pub(crate) mod execution;
53pub(crate) mod spawn;
54pub use execution::{PreparedThread, StagedThread};
55
56pub(crate) mod allocation;
57#[cfg(feature = "fault-injection")]
58pub use allocation::ThreadAllocationProbe;