summaryrefslogtreecommitdiff
path: root/src/lambdakey-v1.0/ao_lambdakey.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-05 17:53:15 -0700
committerKeith Packard <keithp@keithp.com>2017-02-20 11:16:50 -0800
commitd8cf97fe22acefab40d7bb321138e46d4483fef7 (patch)
tree8dbab3f6977c62aa16208913013b3bd0d0728817 /src/lambdakey-v1.0/ao_lambdakey.c
parent286d07d83bd7ff361e5a904c151a75e5a9c8b071 (diff)
altos/lisp: more GC issues. add patom
Use global ao_lisp_stack instead of local stack so that gc moves of that item work. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lambdakey-v1.0/ao_lambdakey.c')
-rw-r--r--src/lambdakey-v1.0/ao_lambdakey.c28
1 files changed, 0 insertions, 28 deletions
diff --git a/src/lambdakey-v1.0/ao_lambdakey.c b/src/lambdakey-v1.0/ao_lambdakey.c
index 6ac78717..8353d811 100644
--- a/src/lambdakey-v1.0/ao_lambdakey.c
+++ b/src/lambdakey-v1.0/ao_lambdakey.c
@@ -15,39 +15,11 @@
#include <ao.h>
#include <ao_lisp.h>
-static uint16_t blink_delay, blink_running;
-
-static void blink(void) {
- blink_running = 1;
- while (blink_delay) {
- ao_led_on(AO_LED_RED);
- ao_delay(blink_delay);
- ao_led_off(AO_LED_RED);
- ao_delay(blink_delay);
- }
- blink_running = 0;
- ao_wakeup(&blink_running);
- ao_exit();
-}
-
-struct ao_task blink_task;
-
-static void blink_cmd() {
- ao_cmd_decimal();
- blink_delay = ao_cmd_lex_i;
- if (blink_delay && !blink_running)
- ao_add_task(&blink_task, blink, "blink");
- if (!blink_delay)
- while (blink_running)
- ao_sleep(&blink_running);
-}
-
static void lisp_cmd() {
ao_lisp_read_eval_print();
}
static const struct ao_cmds blink_cmds[] = {
- { blink_cmd, "b <delay, 0 off>\0Blink the green LED" },
{ lisp_cmd, "l\0Run lisp interpreter" },
{ 0, 0 }
};