diff --git a/interrupts.cpp b/interrupts.cpp index e2f2722..e68fca9 100644 --- a/interrupts.cpp +++ b/interrupts.cpp @@ -49,7 +49,34 @@ std::tuple simulate_trace(std::vector simulate_trace(std::vector simulate_trace(std::vector simulate_trace(std::vector prog_traces; + std::string line; + while (std::getline(prog_file, line)) prog_traces.push_back(line); + + auto [prog_exec, prog_status, prog_time] = simulate_trace(prog_traces, current_time, vectors, delays, external_files, current, wait_queue); + + execution += prog_exec; + system_status += prog_status; + current_time = prog_time; + + // After child finishes, restore parent if needed + if (!wait_queue.empty()) { + current = wait_queue.back(); + wait_queue.pop_back(); + } + @@ -156,7 +243,7 @@ int main(int argc, char** argv) { std::vector wait_queue; /******************ADD YOUR VARIABLES HERE*************************/ - + int child_counter = 0; /******************************************************************/