change global allocator and fix some services

This commit is contained in:
Jun Kurihara 2022-07-11 21:00:21 +09:00
commit 9f6b73a7c0
No known key found for this signature in database
GPG key ID: 48ADFD173ED22B03
3 changed files with 28 additions and 18 deletions

View file

@ -17,10 +17,10 @@ h3 = ["quinn"]
[dependencies] [dependencies]
anyhow = "1.0.58" anyhow = "1.0.58"
clap = { version = "3.2.6", features = ["std", "cargo", "wrap_help"] } clap = { version = "3.2.8", features = ["std", "cargo", "wrap_help"] }
env_logger = "0.9.0" env_logger = "0.9.0"
futures = "0.3.21" futures = "0.3.21"
hyper = { version = "0.14.19", default-features = false, features = [ hyper = { version = "0.14.20", default-features = false, features = [
"server", "server",
"http1", "http1",
"http2", "http2",
@ -41,7 +41,7 @@ rustls = "0.20.6"
rand = "0.8.5" rand = "0.8.5"
toml = "0.5.9" toml = "0.5.9"
rustc-hash = "1.1.0" rustc-hash = "1.1.0"
serde = { version = "1.0.137", features = ["derive"] } serde = { version = "1.0.139", features = ["derive"] }
hyper-rustls = { version = "0.23.0", default-features = false, features = [ hyper-rustls = { version = "0.23.0", default-features = false, features = [
"tokio-runtime", "tokio-runtime",
"webpki-tokio", "webpki-tokio",
@ -52,9 +52,7 @@ quinn = { version = "0.8.3", optional = true }
h3 = { git = "https://github.com/hyperium/h3.git" } h3 = { git = "https://github.com/hyperium/h3.git" }
h3-quinn = { git = "https://github.com/hyperium/h3.git" } h3-quinn = { git = "https://github.com/hyperium/h3.git" }
bytes = "1.1.0" bytes = "1.1.0"
mimalloc-rust = "0.2.0"
[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = "0.5.0"
[dev-dependencies] [dev-dependencies]
@ -66,3 +64,4 @@ incremental = false
lto = "fat" lto = "fat"
opt-level = 3 opt-level = 3
panic = "abort" panic = "abort"
strip = true

View file

@ -1,6 +1,6 @@
#[cfg(not(target_env = "msvc"))] use mimalloc_rust::*;
#[global_allocator] #[global_allocator]
static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc; static GLOBAL_MIMALLOC: GlobalMiMalloc = GlobalMiMalloc;
mod backend; mod backend;
mod backend_opt; mod backend_opt;

View file

@ -209,39 +209,50 @@ where
#[cfg(not(feature = "h3"))] #[cfg(not(feature = "h3"))]
{ {
select! { select! {
_= self.cert_service(tx) => { _= self.cert_service(tx).fuse() => {
error!("Cert service for TLS exited"); error!("Cert service for TLS exited");
}, },
_ = self.listener_service(server, rx) => { _ = self.listener_service(server, rx).fuse() => {
error!("TCP proxy service for TLS exited"); error!("TCP proxy service for TLS exited");
}, },
complete => {
error!("Something went wrong");
return Ok(())
}
}; };
Ok(()) Ok(())
} }
#[cfg(feature = "h3")] #[cfg(feature = "h3")]
{ {
if self.globals.http3 { if self.globals.http3 {
tokio::select! { select! {
_= self.cert_service(tx) => { _= self.cert_service(tx).fuse() => {
error!("Cert service for TLS exited"); error!("Cert service for TLS exited");
}, },
_ = self.listener_service(server, rx.clone()) => { _ = self.listener_service(server, rx.clone()).fuse() => {
error!("TCP proxy service for TLS exited"); error!("TCP proxy service for TLS exited");
}, },
_= self.listener_service_h3(rx) => { _= self.listener_service_h3(rx).fuse() => {
error!("UDP proxy service for QUIC exited"); error!("UDP proxy service for QUIC exited");
}, },
complete => {
error!("Something went wrong");
return Ok(())
}
}; };
Ok(()) Ok(())
} else { } else {
tokio::select! { select! {
_= self.cert_service(tx) => { _= self.cert_service(tx).fuse() => {
error!("Cert service for TLS exited"); error!("Cert service for TLS exited");
}, },
_ = self.listener_service(server, rx) => { _ = self.listener_service(server, rx).fuse() => {
error!("TCP proxy service for TLS exited"); error!("TCP proxy service for TLS exited");
}, },
complete => {
error!("Something went wrong");
return Ok(())
}
}; };
Ok(()) Ok(())
} }