Skip to main content

Module split_loop

Module split_loop 

Source
Expand description

Timeline splitting loop.

When a new assertion success is discovered, split_on_discovery forks child processes with different seeds to explore alternate timelines from that splitpoint forward.

§Process Model

Parent timeline (seed S0, depth D)
  |-- Timeline 0 (seed S0', depth D+1) -> waitpid -> merge coverage
  |-- Timeline 1 (seed S1', depth D+1) -> waitpid -> merge coverage
  |-- ...
  `-- Timeline N (seed SN', depth D+1) -> waitpid -> merge coverage
  resume parent timeline

Each child returns from this function and continues the simulation with reseeded randomness. The parent waits for each child sequentially.

Structs§

AdaptiveConfig
Configuration for adaptive batch-based timeline splitting.

Enums§

Parallelism
Controls how many children can run in parallel during splitting.

Functions§

exit_child
Exit the current child process with the given code.
split_on_discovery
Split the simulation timeline at a discovery point.