/* * 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. */ #include #include "emscripten/threading.h" #include "threading_internal.h" #include "pthread_impl.h" void _emscripten_thread_init(pthread_t ptr, int is_main, int is_runtime, int can_block, int default_stacksize, int start_profiling) { __set_thread_state(ptr, is_main, is_runtime, can_block); // Set `__default_stacksize` just once when the main runtime thread is // started. The value of `DEFAULT_PTHREAD_STACK_SIZE` is passed in here as // `default_stacksize`. if (is_runtime && default_stacksize) { __default_stacksize = default_stacksize; } #ifndef NDEBUG if (start_profiling) { _emscripten_thread_profiler_enable(); } emscripten_set_current_thread_status(EM_THREAD_STATUS_RUNNING); #endif }