SCP: More immediate detection of changed stop_cpu during event processing.

This commit is contained in:
Mark Pizzolato 2015-04-25 03:49:48 -07:00
parent 8050030bc1
commit dee7135cfb

5
scp.c
View file

@ -8264,7 +8264,8 @@ do {
AIO_EVENT_COMPLETE(uptr, reason);
} while ((reason == SCPE_OK) &&
(sim_interval <= 0) &&
(sim_clock_queue != QUEUE_LIST_END));
(sim_clock_queue != QUEUE_LIST_END) &&
(!stop_cpu));
if (sim_clock_queue == QUEUE_LIST_END) { /* queue empty? */
sim_interval = noqueue_time = NOQUEUE_WAIT; /* flag queue empty */
@ -8273,6 +8274,8 @@ if (sim_clock_queue == QUEUE_LIST_END) { /* queue empty? */
else
sim_debug (SIM_DBG_EVENT, sim_dflt_dev, "Processing Queue Complete New Interval = %d(%s)\n", sim_interval, sim_uname(sim_clock_queue));
if ((reason == SCPE_OK) && stop_cpu)
reason = SCPE_STOP;
return reason;
}