From 39c5217740cead80e85c288fe09f2da4a0189758 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 7 Jan 2018 13:56:16 -0800 Subject: [PATCH] SCP: Properly reset the event queue prior to run/boot Need to call sim_cancel to remove entries from the event queue since canceling some events may involve other components. --- scp.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/scp.c b/scp.c index ea6c1f8f..ae02d94b 100644 --- a/scp.c +++ b/scp.c @@ -7272,16 +7272,14 @@ if (sim_deb && (sim_deb != stdout) && (sim_deb != sim_log)) {/* debug if enabled t_stat sim_run_boot_prep (int32 flag) { -UNIT *uptr; t_stat r; sim_interval = 0; /* reset queue */ sim_time = sim_rtime = 0; -noqueue_time = 0; -for (uptr = sim_clock_queue; uptr != QUEUE_LIST_END; uptr = sim_clock_queue) { - sim_clock_queue = uptr->next; - uptr->next = NULL; - } +noqueue_time = 0; /* reset queue */ +while (sim_clock_queue != QUEUE_LIST_END) + sim_cancel (sim_clock_queue); +noqueue_time = sim_interval = 0; r = reset_all (0); if ((r == SCPE_OK) && (flag == RU_RUN)) { if ((run_cmd_did_reset) && (0 == (sim_switches & SWMASK ('Q')))) {