From d4f9291ad163f80587e3d7e5e851e16ccce607d9 Mon Sep 17 00:00:00 2001 From: Yilin Sun Date: Tue, 7 Mar 2023 20:24:28 +0800 Subject: [PATCH] Handle exit event. Signed-off-by: Yilin Sun --- src/main.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main.c b/src/main.c index 85a7346..97b7593 100644 --- a/src/main.c +++ b/src/main.c @@ -90,6 +90,12 @@ static void app_mrb_runtime_task(void *parameters) { mrb_show_version(mrb); mrb_show_copyright(mrb); + char mrb_code[] = "name = 'LPCXpresso55S69'\nputs \"Greetings #{name}, from MRuby #{RUBY_VERSION}.\""; + + struct mrb_parser_state *parser_state = mrb_parse_string(mrb, mrb_code, cxt); + + mrb_load_exec(mrb, parser_state, cxt); + char *line; while ((line = linenoise("hello> ")) != NULL) { @@ -98,16 +104,9 @@ static void app_mrb_runtime_task(void *parameters) { free(line); } - char mrb_code[] = "name = 'LPCXpresso55S69'\nputs \"Greetings #{name}, from MRuby #{RUBY_VERSION}.\""; + printf("REPL thread received ^D, cleaning up...\n"); - struct mrb_parser_state *parser_state = mrb_parse_string(mrb, mrb_code, cxt); - - mrb_load_exec(mrb, parser_state, cxt); - - for (;;) { - /* Wait for REPL commands */ - vTaskDelay(pdMS_TO_TICKS(500)); - } + /* User pressed ^D */ mrbc_cleanup_local_variables(mrb, cxt); mrbc_context_free(mrb, cxt);