diff --git a/src/callback.rs b/src/callback.rs index ca93abe..f19a898 100644 --- a/src/callback.rs +++ b/src/callback.rs @@ -78,15 +78,9 @@ where inner_system.apply_deferred(world); let mut runtime = world.get_resource_mut::().expect("No runtime resource"); - if R::needs_own_thread() { - runtime.with_engine_send_mut(move |engine| { - Out::into_runtime_value_with_engine(result, engine) - }) - } else { - runtime.with_engine_mut(move |engine| { - Out::into_runtime_value_with_engine(result, engine) - }) - } + runtime.with_engine_send_mut(move |engine| { + Out::into_runtime_value_with_engine(result, engine) + }) }; let system = IntoSystem::into_system(system_fn); CallbackSystem { @@ -110,32 +104,21 @@ macro_rules! impl_tuple { inner_system.initialize(world); let system_fn = move |args: In>, world: &mut World| { let mut runtime = world.get_resource_mut::().expect("No runtime resource"); - let args = if RN::needs_own_thread() { + + let args = runtime.with_engine_send_mut(move |engine| { ( $($t::from_runtime_value_with_engine(args.get($idx).expect(&format!("Failed to get function argument for index {}", $idx)).clone(), engine), )+ ) - }) - } else { - runtime.with_engine_mut(move |engine| { - ( - $($t::from_runtime_value_with_engine(args.get($idx).expect(&format!("Failed to get function argument for index {}", $idx)).clone(), engine), )+ - ) - }) - }; + }); let result = inner_system.run(args, world); inner_system.apply_deferred(world); let mut runtime = world.get_resource_mut::().expect("No runtime resource"); - if RN::needs_own_thread() { - runtime.with_engine_send_mut(move |engine| { - Out::into_runtime_value_with_engine(result, engine) - }) - } else { - runtime.with_engine_mut(move |engine| { - Out::into_runtime_value_with_engine(result, engine) - }) - } + + runtime.with_engine_send_mut(move |engine| { + Out::into_runtime_value_with_engine(result, engine) + }) }; let system = IntoSystem::into_system(system_fn); CallbackSystem { diff --git a/src/lib.rs b/src/lib.rs index 2060054..173dda0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -315,8 +315,6 @@ pub trait Runtime: Resource + Default { type Value: Send + Clone; type RawEngine; - fn needs_own_thread() -> bool; - /// Provides mutable reference to raw scripting engine instance. /// Can be used to directly interact with an interpreter to use interfaces /// that bevy_scriptum does not provided adapters for. diff --git a/src/runtimes/lua.rs b/src/runtimes/lua.rs index 59c1217..a049fbb 100644 --- a/src/runtimes/lua.rs +++ b/src/runtimes/lua.rs @@ -295,10 +295,6 @@ impl Runtime for LuaRuntime { ) -> T { self.with_engine(f) } - - fn needs_own_thread() -> bool { - false - } } impl<'a, T: IntoLuaMulti<'a>> IntoRuntimeValueWithEngine<'a, T, LuaRuntime> for T { diff --git a/src/runtimes/rhai.rs b/src/runtimes/rhai.rs index 6718f95..57dd83a 100644 --- a/src/runtimes/rhai.rs +++ b/src/runtimes/rhai.rs @@ -204,10 +204,6 @@ impl Runtime for RhaiRuntime { ) -> T { self.with_engine(f) } - - fn needs_own_thread() -> bool { - false - } } impl Default for RhaiRuntime { diff --git a/src/runtimes/ruby.rs b/src/runtimes/ruby.rs index 379e302..437ac23 100644 --- a/src/runtimes/ruby.rs +++ b/src/runtimes/ruby.rs @@ -505,10 +505,6 @@ impl Runtime for RubyRuntime { Ok(RubyValue::new(result)) }) } - - fn needs_own_thread() -> bool { - true - } } pub mod magnus {