From 2d1884f25923b3c347d7289f2903e1bdb4cd6f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Marczell?= Date: Tue, 11 Jan 2022 12:57:37 +0100 Subject: [PATCH 1/2] Warn before busy waiting on futex --- system/lib/pthread/emscripten_futex_wait.c | 1 + 1 file changed, 1 insertion(+) diff --git a/system/lib/pthread/emscripten_futex_wait.c b/system/lib/pthread/emscripten_futex_wait.c index 17e2cde06c971..984da5c7cc34a 100644 --- a/system/lib/pthread/emscripten_futex_wait.c +++ b/system/lib/pthread/emscripten_futex_wait.c @@ -25,6 +25,7 @@ int emscripten_futex_wait(volatile void *addr, uint32_t val, double max_wait_ms) // __builtin_wasm_memory_atomic_wait32 so we call out the JS function that // will busy wait. if (!_emscripten_thread_supports_atomics_wait()) { + emscripten_check_blocking_allowed(); ret = _emscripten_futex_wait_non_blocking(addr, val, max_wait_ms); emscripten_conditional_set_current_thread_status(EM_THREAD_STATUS_WAITFUTEX, EM_THREAD_STATUS_RUNNING); return ret; From 4a35256b763414e49f32470abe4f073e61f30183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Marczell?= Date: Tue, 11 Jan 2022 15:47:46 +0100 Subject: [PATCH 2/2] Fix metadce tests? --- .../minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.exports | 2 +- .../minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.imports | 1 + .../minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.jssize | 2 +- .../metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.sent | 1 + .../metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.size | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.exports b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.exports index 2f772401a8105..ec14750b14e10 100644 --- a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.exports +++ b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.exports @@ -8,7 +8,7 @@ G H I J -p +K q r s diff --git a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.imports b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.imports index fcc5923256f40..259d8061349ff 100644 --- a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.imports +++ b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.imports @@ -13,3 +13,4 @@ a.l a.m a.n a.o +a.p diff --git a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.jssize b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.jssize index 68fb2133bbba0..876760d8510e6 100644 --- a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.jssize +++ b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.jssize @@ -1 +1 @@ -48032 +48492 diff --git a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.sent b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.sent index f8c295c135e5d..b03757ea914f6 100644 --- a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.sent +++ b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.sent @@ -13,3 +13,4 @@ l m n o +p diff --git a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.size b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.size index bdfdf3e0e84e2..e1cbe04cdaf2b 100644 --- a/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.size +++ b/tests/other/metadce/minimal_main_Oz_USE_PTHREADS_PROXY_TO_PTHREAD.size @@ -1 +1 @@ -16949 +16957