#[repr(C)]pub struct ForkFrame {
pub children: ArenaRange,
pub join_kind: JoinKind,
pub remaining: u32,
}Expand description
Fork/join bookkeeping (process.md §7: “construction only, no scheduling
semantics in v1”; ledger PR-086, fork/join family PR-001, PR-047, PR-061).
children is a fixed ArenaRange into the engine’s dynamic fork-child
table — never an owned Vec, the same memcpy-safety reason as
ActivationRecord::frame. Its elements are crate::sched::ProcessId,
not ProcessInstanceId: scheduler.md is explicit that “fork
children are dynamically created ProcessIds not present in static
elaboration,” so ProcessInstanceId (elaboration-derived, static-only per
this file’s own doc comment above) structurally cannot name them. The
branch count for a given fork site is statically known at lowering time;
the concrete ProcessIds are assigned dynamically at fork time and live
in that out-of-line table, never inline here.
Fields§
§children: ArenaRange§join_kind: JoinKind§remaining: u32Trait Implementations§
impl Copy for ForkFrame
impl Eq for ForkFrame
impl StructuralPartialEq for ForkFrame
Auto Trait Implementations§
impl Freeze for ForkFrame
impl RefUnwindSafe for ForkFrame
impl Send for ForkFrame
impl Sync for ForkFrame
impl Unpin for ForkFrame
impl UnsafeUnpin for ForkFrame
impl UnwindSafe for ForkFrame
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.