diff --git a/src/runtime2/branch.rs b/src/runtime2/branch.rs index f3fa84c5ee325768f51d0ca69ce14f834f95e02e..a790ff23e52fc9ae7f37e70509474ac156234248 100644 --- a/src/runtime2/branch.rs +++ b/src/runtime2/branch.rs @@ -65,6 +65,7 @@ pub(crate) struct Branch { pub next_in_queue: BranchId, // used by `ExecTree`/`BranchQueue` pub inbox: HashMap, // TODO: Remove, currently only valid in single-get/put mode pub prepared_channel: Option<(Value, Value)>, // TODO: Maybe remove? + pub prepared_fork: Option, // TODO: See above } impl BranchListItem for Branch { @@ -85,17 +86,19 @@ impl Branch { next_in_queue: BranchId::new_invalid(), inbox: HashMap::new(), prepared_channel: None, + prepared_fork: None, } } /// Constructs a sync branch. The provided branch is assumed to be the /// parent of the new branch within the execution tree. fn new_sync(new_index: u32, parent_branch: &Branch) -> Self { - debug_assert!( - (parent_branch.sync_state == SpeculativeState::RunningNonSync && !parent_branch.parent_id.is_valid()) || - (parent_branch.sync_state == SpeculativeState::HaltedAtBranchPoint) - ); // forking from non-sync, or forking from a branching point + // debug_assert!( + // (parent_branch.sync_state == SpeculativeState::RunningNonSync && !parent_branch.parent_id.is_valid()) || + // (parent_branch.sync_state == SpeculativeState::HaltedAtBranchPoint) + // ); // forking from non-sync, or forking from a branching point debug_assert!(parent_branch.prepared_channel.is_none()); + debug_assert!(parent_branch.prepared_fork.is_none()); Branch { id: BranchId::new(new_index), @@ -106,6 +109,7 @@ impl Branch { next_in_queue: BranchId::new_invalid(), inbox: parent_branch.inbox.clone(), prepared_channel: None, + prepared_fork: None, } }