Most Ruby servers use some type of pre-forking mechanism to provide parallel request processing. Unfortunately, this can causes processes to deadlock if you compile Wasm before forking (when using Wasmtime::Engine.new(parallel_compilation: true)).
As such, if any compilations needs to be done before forking, you need to use Wasmtime::Engine.new(parallel_compilation: false). Let's add something like this to the docs.
Most Ruby servers use some type of pre-forking mechanism to provide parallel request processing. Unfortunately, this can causes processes to deadlock if you compile Wasm before forking (when using
Wasmtime::Engine.new(parallel_compilation: true)).As such, if any compilations needs to be done before forking, you need to use
Wasmtime::Engine.new(parallel_compilation: false). Let's add something like this to the docs.