From 5dce742cc9593dce4c07233d15e11e1320ef6d13 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Wed, 27 Apr 2022 00:53:05 -0700 Subject: web: handle race condition on load This is incredibly unlikely to ever matter unless your browser is a potato. --- web/dartboat_wasm.c | 7 ++++++- web/static/dartboat.js | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/web/dartboat_wasm.c b/web/dartboat_wasm.c index 7c06849..c3091e9 100644 --- a/web/dartboat_wasm.c +++ b/web/dartboat_wasm.c @@ -628,9 +628,14 @@ EMSCRIPTEN_KEEPALIVE void prompt_handle(char *command, char *data) prompt_handle_undo(); } -int main() +EMSCRIPTEN_KEEPALIVE void init() { init_boat(); set_prompt_mode(PM_VISIT); handle_next(); } + +int main() +{ + EM_ASM(boatReady()); +} diff --git a/web/static/dartboat.js b/web/static/dartboat.js index 285a98e..06d9d10 100644 --- a/web/static/dartboat.js +++ b/web/static/dartboat.js @@ -209,3 +209,11 @@ document.addEventListener('keydown', e => { else if (e.key == 'u') promptHandle('undo'); }); + +function boatReady() { + if (document.readyState === 'loading') + document.addEventListener('DOMContentLoaded', () => + Module.ccall('init')); + else + Module.ccall('init'); +} -- cgit v1.2.3-70-g09d2