Using the 'm' command to turn telem off and back on would end up going
around the whole telemetry queue replaying everything there as the
wait loop would exit when disabling monitoring even if the ring was empty.
Signed-off-by: Keith Packard <keithp@keithp.com>
ao_sleep(DATA_TO_XDATA(&ao_external_monitoring));
while (ao_monitor_tail == ao_monitor_head && ao_external_monitoring)
ao_sleep(DATA_TO_XDATA(&ao_monitor_head));
ao_sleep(DATA_TO_XDATA(&ao_external_monitoring));
while (ao_monitor_tail == ao_monitor_head && ao_external_monitoring)
ao_sleep(DATA_TO_XDATA(&ao_monitor_head));
+ if (!ao_external_monitoring)
+ continue;
m = &ao_monitor_ring[ao_monitor_tail];
ao_monitor_tail = ao_monitor_ring_next(ao_monitor_tail);
switch (ao_monitoring) {
m = &ao_monitor_ring[ao_monitor_tail];
ao_monitor_tail = ao_monitor_ring_next(ao_monitor_tail);
switch (ao_monitoring) {