| thread_local int tls = 1; | |
| void main_thread_func() { | |
| assert(!emscripten_current_thread_is_wasm_worker()); | |
| emscripten_outf("%d", tls); | |
| REPORT_RESULT(tls); | |
| } | |
| void worker_main() { | |
| assert(emscripten_current_thread_is_wasm_worker()); | |
| assert(tls != 42); | |
| assert(tls != 0); | |
| assert(tls == 1); | |
| tls = 123456; // Try to write garbage data to the memory location. | |
| emscripten_wasm_worker_post_function_v(0, main_thread_func); | |
| } | |
| char stack[1024]; | |
| int main() { | |
| emscripten_outf("%d", tls); | |
| assert(!emscripten_current_thread_is_wasm_worker()); | |
| tls = 42; | |
| emscripten_wasm_worker_t worker = emscripten_create_wasm_worker(stack, sizeof(stack)); | |
| emscripten_wasm_worker_post_function_v(worker, worker_main); | |
| } | |