Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch from Wasmer to Wasmtime #3349

Merged
merged 10 commits into from
Jun 28, 2024
Prev Previous commit
Next Next commit
Pass PluginEnv by value to load_plugin_instance
This will allow removing the Clone impl from PluginEnv when migrating to
Wasmtime as required by the missing Clone impl on Wasmtime's WasiCtx.
  • Loading branch information
bjorn3 committed Jun 14, 2024
commit e4312dce6aeb8d62db29dc952d2f4418104d7906
20 changes: 8 additions & 12 deletions zellij-server/src/plugins/plugin_loader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ impl<'a> PluginLoader<'a> {
.load_module_from_memory()
.and_then(|module| plugin_loader.create_plugin_environment(module))
.and_then(|(store, instance, plugin_env)| {
plugin_loader.load_plugin_instance(store, &instance, &plugin_env, &plugin_map)
plugin_loader.load_plugin_instance(store, &instance, plugin_env, &plugin_map)
})
.and_then(|_| {
plugin_loader.clone_instance_for_other_clients(&connected_clients, &plugin_map)
Expand Down Expand Up @@ -173,7 +173,7 @@ impl<'a> PluginLoader<'a> {
.compile_module()
.and_then(|module| plugin_loader.create_plugin_environment(module))
.and_then(|(store, instance, plugin_env)| {
plugin_loader.load_plugin_instance(store, &instance, &plugin_env, &plugin_map)
plugin_loader.load_plugin_instance(store, &instance, plugin_env, &plugin_map)
})
.and_then(|_| {
plugin_loader.clone_instance_for_other_clients(
Expand All @@ -189,7 +189,7 @@ impl<'a> PluginLoader<'a> {
.or_else(|_e| plugin_loader.compile_module())
.and_then(|module| plugin_loader.create_plugin_environment(module))
.and_then(|(store, instance, plugin_env)| {
plugin_loader.load_plugin_instance(store, &instance, &plugin_env, &plugin_map)
plugin_loader.load_plugin_instance(store, &instance, plugin_env, &plugin_map)
})
.and_then(|_| {
plugin_loader.clone_instance_for_other_clients(
Expand Down Expand Up @@ -246,7 +246,7 @@ impl<'a> PluginLoader<'a> {
.load_module_from_memory()
.and_then(|module| plugin_loader.create_plugin_environment(module))
.and_then(|(store, instance, plugin_env)| {
plugin_loader.load_plugin_instance(store, &instance, &plugin_env, &plugin_map)
plugin_loader.load_plugin_instance(store, &instance, plugin_env, &plugin_map)
})?
}
connected_clients.lock().unwrap().push(client_id);
Expand Down Expand Up @@ -300,7 +300,7 @@ impl<'a> PluginLoader<'a> {
.compile_module()
.and_then(|module| plugin_loader.create_plugin_environment(module))
.and_then(|(store, instance, plugin_env)| {
plugin_loader.load_plugin_instance(store, &instance, &plugin_env, &plugin_map)
plugin_loader.load_plugin_instance(store, &instance, plugin_env, &plugin_map)
})
.and_then(|_| {
plugin_loader.clone_instance_for_other_clients(&connected_clients, &plugin_map)
Expand Down Expand Up @@ -587,7 +587,7 @@ impl<'a> PluginLoader<'a> {
&mut self,
store: Store,
instance: &Instance,
plugin_env: &PluginEnv,
plugin_env: PluginEnv,
plugin_map: &Arc<Mutex<PluginMap>>,
) -> Result<()> {
let err_context = || format!("failed to load plugin from instance {instance:#?}");
Expand Down Expand Up @@ -725,12 +725,8 @@ impl<'a> PluginLoader<'a> {
.load_module_from_memory()
.and_then(|module| plugin_loader_for_client.create_plugin_environment(module))
.and_then(|(store, instance, plugin_env)| {
plugin_loader_for_client.load_plugin_instance(
store,
&instance,
&plugin_env,
plugin_map,
)
plugin_loader_for_client
.load_plugin_instance(store, &instance, plugin_env, plugin_map)
})?
}
display_loading_stage!(
Expand Down