Browse Source

[HTML5] Early FS initialization.

So that "/userfs" is created and mounted before `setup`.
Fabio Alessandrelli 5 years ago
parent
commit
093c463ebf
1 changed files with 5 additions and 4 deletions
  1. 5 4
      platform/javascript/javascript_main.cpp

+ 5 - 4
platform/javascript/javascript_main.cpp

@@ -120,9 +120,12 @@ extern "C" EMSCRIPTEN_KEEPALIVE void main_after_fs_sync(char *p_idbfs_err) {
 }
 }
 
 
 int main(int argc, char *argv[]) {
 int main(int argc, char *argv[]) {
-
+	// Create and mount userfs immediately.
+	EM_ASM({
+		FS.mkdir('/userfs');
+		FS.mount(IDBFS, {}, '/userfs');
+	});
 	os = new OS_JavaScript(argc, argv);
 	os = new OS_JavaScript(argc, argv);
-	// TODO: Check error return value.
 	Main::setup(argv[0], argc - 1, &argv[1], false);
 	Main::setup(argv[0], argc - 1, &argv[1], false);
 	emscripten_set_main_loop(main_loop_callback, -1, false);
 	emscripten_set_main_loop(main_loop_callback, -1, false);
 	emscripten_pause_main_loop(); // Will need to wait for FS sync.
 	emscripten_pause_main_loop(); // Will need to wait for FS sync.
@@ -131,8 +134,6 @@ int main(int argc, char *argv[]) {
 	// run the 'main_after_fs_sync' function.
 	// run the 'main_after_fs_sync' function.
 	/* clang-format off */
 	/* clang-format off */
 	EM_ASM({
 	EM_ASM({
-		FS.mkdir('/userfs');
-		FS.mount(IDBFS, {}, '/userfs');
 		FS.syncfs(true, function(err) {
 		FS.syncfs(true, function(err) {
 			requestAnimationFrame(function() {
 			requestAnimationFrame(function() {
 				ccall('main_after_fs_sync', null, ['string'], [err ? err.message : ""]);
 				ccall('main_after_fs_sync', null, ['string'], [err ? err.message : ""]);