Grab cluster->lock when modifying exec_env->module_inst (#2685)

Fixes: https://github.com/bytecodealliance/wasm-micro-runtime/issues/2680

And when switching back to the original module_inst, propagate exception if any.

cf. https://github.com/bytecodealliance/wasm-micro-runtime/issues/2512
This commit is contained in:
YAMAMOTO Takashi
2023-11-09 19:56:02 +09:00
committed by GitHub
parent 797e534cec
commit 24c4d256b3
8 changed files with 103 additions and 36 deletions

View File

@ -1406,3 +1406,19 @@ exception_unlock(WASMModuleInstance *module_inst)
{
os_mutex_unlock(&_exception_lock);
}
void
wasm_cluster_traverse_lock(WASMExecEnv *exec_env)
{
WASMCluster *cluster = wasm_exec_env_get_cluster(exec_env);
bh_assert(cluster);
os_mutex_lock(&cluster->lock);
}
void
wasm_cluster_traverse_unlock(WASMExecEnv *exec_env)
{
WASMCluster *cluster = wasm_exec_env_get_cluster(exec_env);
bh_assert(cluster);
os_mutex_unlock(&cluster->lock);
}