1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
/*
* 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 <pthread.h>
#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
}
|