Handle exit event.

Signed-off-by: Yilin Sun <imi415@imi.moe>
This commit is contained in:
Yilin Sun 2023-03-07 20:24:28 +08:00
parent 861159b916
commit d4f9291ad1
Signed by: imi415
GPG Key ID: 885EC2B5A8A6F8A7
1 changed files with 8 additions and 9 deletions

View File

@ -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);