偽物のMutex Rust + WASM (wasm32-unknown-unknown等)でstd::sync::Mutexを使うと、表面上コンパイルは通るがその中身はシングルスレッド専用のものとなってしまう。 具体的には、Mutexの二重ロックを試みると単純にpanicするようになっている。(実装) なぜこうなっているのかといえば、そもそもWebAssemblyは基本シングルスレッドで動くものだからで、マルチスレッドを想定する必要もないからということだと思われる。 一方、最近のWASMランタイムではshared memoryがサポートされてきており、これとWebWorker等を組み合わせることで一応マルチスレッドは実現可能となっている。このような場合に上記のようなシングルスレッド用のMutexを生成されても役に立たないので、これをどうにかしてマルチスレッド用のものに切り替えてみる。 W

