diff --git a/packages/backend-rs/src/init/system_info.rs b/packages/backend-rs/src/init/system_info.rs index 4fb6e3a21f..dc5b9b8aa9 100644 --- a/packages/backend-rs/src/init/system_info.rs +++ b/packages/backend-rs/src/init/system_info.rs @@ -3,15 +3,15 @@ use sysinfo::System; pub type SysinfoPoisonError = PoisonError<MutexGuard<'static, System>>; -// TODO: handle this in a more proper way when we move the entry point to backend-rs -pub fn system() -> Result<MutexGuard<'static, System>, SysinfoPoisonError> { - pub static SYSTEM: OnceLock<Mutex<System>> = OnceLock::new(); - SYSTEM.get_or_init(|| Mutex::new(System::new_all())).lock() +static SYSTEM_INFO: OnceLock<Mutex<System>> = OnceLock::new(); + +pub fn system_info() -> &'static std::sync::Mutex<sysinfo::System> { + SYSTEM_INFO.get_or_init(|| Mutex::new(System::new_all())) } #[crate::export] pub fn show_server_info() -> Result<(), SysinfoPoisonError> { - let system_info = system()?; + let system_info = system_info().lock()?; tracing::info!( "Hostname: {}", diff --git a/packages/backend-rs/src/misc/reaction.rs b/packages/backend-rs/src/misc/reaction.rs index a30abcdd96..accedf8daf 100644 --- a/packages/backend-rs/src/misc/reaction.rs +++ b/packages/backend-rs/src/misc/reaction.rs @@ -1,5 +1,6 @@ use crate::database::db_conn; -use crate::misc::{convert_host::to_puny, meta::fetch_meta}; +use crate::misc::convert_host::to_puny; +use crate::misc::meta::fetch_meta; use crate::model::entity::emoji; use once_cell::sync::Lazy; use regex::Regex; diff --git a/packages/backend-rs/src/misc/system_info.rs b/packages/backend-rs/src/misc/system_info.rs index df0fa5bb9e..ec657a2f70 100644 --- a/packages/backend-rs/src/misc/system_info.rs +++ b/packages/backend-rs/src/misc/system_info.rs @@ -1,4 +1,4 @@ -use crate::init::system_info::{system, SysinfoPoisonError}; +use crate::init::system_info::{system_info, SysinfoPoisonError}; use sysinfo::{Disks, MemoryRefreshKind}; // TODO: i64 -> u64 (we can't export u64 to Node.js) @@ -30,7 +30,7 @@ pub struct Storage { #[crate::export] pub fn cpu_info() -> Result<Cpu, SysinfoPoisonError> { - let system_info = system()?; + let system_info = system_info().lock()?; Ok(Cpu { model: match system_info.cpus() { @@ -46,7 +46,7 @@ pub fn cpu_info() -> Result<Cpu, SysinfoPoisonError> { #[crate::export] pub fn cpu_usage() -> Result<f32, SysinfoPoisonError> { - let mut system_info = system()?; + let mut system_info = system_info().lock()?; system_info.refresh_cpu_usage(); let total_cpu_usage: f32 = system_info.cpus().iter().map(|cpu| cpu.cpu_usage()).sum(); @@ -57,7 +57,7 @@ pub fn cpu_usage() -> Result<f32, SysinfoPoisonError> { #[crate::export] pub fn memory_usage() -> Result<Memory, SysinfoPoisonError> { - let mut system_info = system()?; + let mut system_info = system_info().lock()?; system_info.refresh_memory_specifics(MemoryRefreshKind::new().with_ram()); diff --git a/packages/backend-rs/src/service/antenna.rs b/packages/backend-rs/src/service/antenna.rs index 323690761b..bcb6490d64 100644 --- a/packages/backend-rs/src/service/antenna.rs +++ b/packages/backend-rs/src/service/antenna.rs @@ -1,5 +1,4 @@ -use crate::database::cache; -use crate::database::{db_conn, redis_conn, redis_key, RedisConnError}; +use crate::database::{cache, db_conn, redis_conn, redis_key, RedisConnError}; use crate::federation::acct::Acct; use crate::misc::check_hit_antenna::{check_hit_antenna, AntennaCheckError}; use crate::model::entity::{antenna, note}; diff --git a/packages/backend-rs/src/service/nodeinfo/generate.rs b/packages/backend-rs/src/service/nodeinfo/generate.rs index ec1d430d8a..09bec87c77 100644 --- a/packages/backend-rs/src/service/nodeinfo/generate.rs +++ b/packages/backend-rs/src/service/nodeinfo/generate.rs @@ -1,6 +1,5 @@ use crate::config::CONFIG; -use crate::database::cache; -use crate::database::db_conn; +use crate::database::{cache, db_conn}; use crate::misc::meta::fetch_meta; use crate::model::entity::{note, user}; use crate::service::nodeinfo::schema::*;