summaryrefslogtreecommitdiff
path: root/src/kernel/ao_cmd.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-07-27 12:24:27 -0700
committerKeith Packard <keithp@keithp.com>2016-07-27 12:24:27 -0700
commit17adfd7939ff697afa96f7207a3fe17b6af789bd (patch)
tree35d5e1145121b0be0e20fd9820d69f1347abde79 /src/kernel/ao_cmd.c
parent1667cb8e8b702b05fc3ec39ee49029885df64a4a (diff)
altos: Keep telemetry and command output from interleaving
When monitoring telemetry, the frame needs to be sent together on one line, not split with the output of a command (like 'a') mixed in. Use a mutex for products with monitoring to keep command output and telemetry output each on separate lines. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/kernel/ao_cmd.c')
-rw-r--r--src/kernel/ao_cmd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/kernel/ao_cmd.c b/src/kernel/ao_cmd.c
index 605a2f20..10716afd 100644
--- a/src/kernel/ao_cmd.c
+++ b/src/kernel/ao_cmd.c
@@ -394,11 +394,17 @@ ao_cmd(void)
if (func)
break;
}
+#if HAS_MONITOR
+ ao_mutex_get(&ao_monitoring_mutex);
+#endif
if (func)
(*func)();
else
ao_cmd_status = ao_cmd_syntax_error;
report();
+#if HAS_MONITOR
+ ao_mutex_put(&ao_monitoring_mutex);
+#endif
}
}