Buckets:
| /* | |
| * Copyright 2021 The Emscripten Authors. All rights reserved. | |
| * Emscripten is available under two separate licenses, the MIT license and the | |
| * University of Illinois/NCSA Open Source License. Both these licenses can be | |
| * found in the LICENSE file. | |
| */ | |
| static int _main_argc; | |
| static char** _main_argv; | |
| int __main_argc_argv(int argc, char *argv[]); | |
| weak int __main_void(void) { | |
| return __main_argc_argv(_main_argc, _main_argv); | |
| } | |
| static void* _main_thread(void* param) { | |
| // This is the main runtime thread for the application. | |
| emscripten_set_thread_name(pthread_self(), "Application main thread"); | |
| // Will either call user's __main_void or weak version above. | |
| int rtn = __main_void(); | |
| if (!emscripten_runtime_keepalive_check()) { | |
| exit(rtn); | |
| } | |
| return NULL; | |
| } | |
| EMSCRIPTEN_KEEPALIVE int _emscripten_proxy_main(int argc, char** argv) { | |
| pthread_attr_t attr; | |
| pthread_attr_init(&attr); | |
| pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); | |
| // Use the size of the current stack, which is the normal size of the stack | |
| // that main() would have without PROXY_TO_PTHREAD. | |
| pthread_attr_setstacksize(&attr, emscripten_stack_get_base() - emscripten_stack_get_end()); | |
| // Pass special ID -1 to the list of transferred canvases to denote that the | |
| // thread creation should instead take a list of canvases that are specified | |
| // from the command line with -sOFFSCREENCANVASES_TO_PTHREAD linker flag. | |
| emscripten_pthread_attr_settransferredcanvases(&attr, (const char*)-1); | |
| _main_argc = argc; | |
| _main_argv = argv; | |
| pthread_t thread; | |
| int rc = pthread_create(&thread, &attr, _main_thread, NULL); | |
| pthread_attr_destroy(&attr); | |
| if (rc == 0) { | |
| // Mark the thread as strongly referenced, so that Node.js doesn't exit | |
| // while the pthread is running. | |
| _emscripten_thread_set_strongref(thread); | |
| } | |
| return rc; | |
| } | |
Xet Storage Details
- Size:
- 2.06 kB
- Xet hash:
- 9a846fa2191454e844afa7f5d136bca1e251cee181cf80eea3d4363d728b3bd1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.