mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-10-15 17:16:14 -08:00
fix(runtime): restore per-instance native thread configuration (#2658)
Restore per-instance Tokio executors for standard native instances, honoring multi_thread and multi_thread_count with a two-worker minimum in multi-thread mode. Preserve external execution for compact hosts. Run construction, lifecycle operations, FFI data-plane tasks, and hot-reloaded port forwards on the selected instance executor. Keep shutdown cleanup running when its caller is cancelled, and release owned executors without blocking their workers on runtime teardown. Add runtime ownership, cancellation, cross-runtime connectivity, and hot-reload regression coverage, and document the execution model. Validation: all 45 PR checks passed, including linting, integration tests, and cross-platform builds.
This commit is contained in:
1 parent
250c2ad8d6
commit
83baead059
13 files changed
+662
-13
No files matched your search
@@ -31,7 +31,10 @@ use crate::{
|
||||
instance::runtime_host::NativeInstanceRuntimeHost,
|
||||
};
|
||||
|
||||
use super::host::{NativeInstanceHost, native_instance_host};
|
||||
use super::{
|
||||
host::{NativeInstanceHost, native_instance_host},
|
||||
runtime_executor::NativeInstanceExecutor,
|
||||
};
|
||||
#[cfg(feature = "kcp")]
|
||||
use crate::gateway::kcp_proxy::KcpProxyService;
|
||||
#[cfg(feature = "quic")]
|
||||
@@ -42,10 +45,11 @@ use easytier_core::gateway::proxy::wrapped_transport::WrappedTransportEngine;
|
||||
|
||||
pub(crate) type NativeCoreInstance = CoreInstance<NativeInstanceHost>;
|
||||
|
||||
pub(crate) fn compose_native_core_instance(
|
||||
pub(super) fn compose_native_core_instance(
|
||||
toml_config: TomlConfig,
|
||||
process_runtime: Arc<CoreProcessRuntime>,
|
||||
compact_runtime: bool,
|
||||
executor: Option<NativeInstanceExecutor>,
|
||||
) -> anyhow::Result<Arc<NativeCoreInstance>> {
|
||||
let host_config = if compact_runtime {
|
||||
compact_runtime_core_host_config()
|
||||
@@ -58,7 +62,7 @@ pub(crate) fn compose_native_core_instance(
|
||||
&normalized,
|
||||
&host_config,
|
||||
));
|
||||
let runtime_host = NativeInstanceRuntimeHost::new(global_ctx.clone());
|
||||
let runtime_host = NativeInstanceRuntimeHost::new_with_executor(global_ctx.clone(), executor);
|
||||
let mut adapters = runtime_core_host_adapters_with_packet_egress_and_config(
|
||||
global_ctx.clone(),
|
||||
process_runtime,
|
||||
|
||||
Reference in new issue
Block a user