I noticed that the WASM_WORKERS flag includes the implementations of mutexes and semaphores which are just no-ops. This seems a bit surprising to me, as it's a flag that's meant to allow multi-threading with shared memory. It might be worth considering making it use either a real mutex/semaphore implementation, or maybe an implementation that would noisily complain if those APIs are used (or at least used in a multi-threaded fashion).