From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 88BB01FF167 for ; Wed, 14 Aug 2024 09:19:59 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6D39CFC6E; Wed, 14 Aug 2024 09:20:10 +0200 (CEST) From: Maximiliano Sandoval To: pbs-devel@lists.proxmox.com Date: Wed, 14 Aug 2024 09:19:56 +0200 Message-Id: <20240814072001.53422-7-m.sandoval@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240814072001.53422-1-m.sandoval@proxmox.com> References: <20240814072001.53422-1-m.sandoval@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.112 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pbs-devel] [PATCH proxmox v2 07/12] sys: remove lazy_static dependency X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Signed-off-by: Maximiliano Sandoval --- proxmox-sys/Cargo.toml | 2 +- proxmox-sys/src/lib.rs | 29 ++++++++++++++--------------- proxmox-sys/src/linux/procfs/mod.rs | 13 ++++--------- 3 files changed, 19 insertions(+), 25 deletions(-) diff --git a/proxmox-sys/Cargo.toml b/proxmox-sys/Cargo.toml index 4022228c..c5d2bd87 100644 --- a/proxmox-sys/Cargo.toml +++ b/proxmox-sys/Cargo.toml @@ -6,13 +6,13 @@ edition.workspace = true license.workspace = true repository.workspace = true description = "System tools (using nix)." +rust-version.workspace = true exclude.workspace = true [dependencies] anyhow.workspace = true base64.workspace = true -lazy_static.workspace = true libc.workspace = true log.workspace = true nix.workspace = true diff --git a/proxmox-sys/src/lib.rs b/proxmox-sys/src/lib.rs index a16b46e3..c75cd69f 100644 --- a/proxmox-sys/src/lib.rs +++ b/proxmox-sys/src/lib.rs @@ -2,6 +2,7 @@ use std::os::fd::{FromRawFd, OwnedFd}; use std::os::unix::ffi::OsStrExt; +use std::sync::LazyLock; pub mod boot_mode; pub mod command; @@ -20,21 +21,19 @@ pub mod systemd; /// Returns the hosts node name (UTS node name) pub fn nodename() -> &'static str { - lazy_static::lazy_static! { - static ref NODENAME: String = { - std::str::from_utf8( - nix::sys::utsname::uname() - .expect("failed to get nodename") - .nodename() - .as_bytes(), - ) - .expect("non utf-8 nodename not supported") - .split('.') - .next() - .unwrap() - .to_owned() - }; - } + static NODENAME: LazyLock = LazyLock::new(|| { + std::str::from_utf8( + nix::sys::utsname::uname() + .expect("failed to get nodename") + .nodename() + .as_bytes(), + ) + .expect("non utf-8 nodename not supported") + .split('.') + .next() + .unwrap() + .to_owned() + }); &NODENAME } diff --git a/proxmox-sys/src/linux/procfs/mod.rs b/proxmox-sys/src/linux/procfs/mod.rs index 6c436c74..0875fcf8 100644 --- a/proxmox-sys/src/linux/procfs/mod.rs +++ b/proxmox-sys/src/linux/procfs/mod.rs @@ -5,11 +5,10 @@ use std::fs::OpenOptions; use std::io::{BufRead, BufReader}; use std::net::{Ipv4Addr, Ipv6Addr}; use std::str::FromStr; -use std::sync::RwLock; +use std::sync::{LazyLock, RwLock}; use std::time::Instant; use anyhow::{bail, format_err, Error}; -use lazy_static::lazy_static; use nix::unistd::Pid; use serde::Serialize; @@ -27,9 +26,7 @@ pub fn sysconf(name: i32) -> i64 { unsafe { sysconf(name) } } -lazy_static! { - pub static ref CLOCK_TICKS: f64 = sysconf(libc::_SC_CLK_TCK) as f64; -} +pub static CLOCK_TICKS: LazyLock = LazyLock::new(|| sysconf(libc::_SC_CLK_TCK) as f64); /// Selected contents of the `/proc/PID/stat` file. pub struct PidStat { @@ -223,10 +220,8 @@ pub struct ProcFsStat { pub iowait_percent: f64, } -lazy_static! { - static ref PROC_LAST_STAT: RwLock<(ProcFsStat, Instant, bool)> = - RwLock::new((ProcFsStat::default(), Instant::now(), true)); -} +static PROC_LAST_STAT: LazyLock> = + LazyLock::new(|| RwLock::new((ProcFsStat::default(), Instant::now(), true))); /// reads `/proc/stat`. For now only total host CPU usage is handled as the /// other metrics are not really interesting -- 2.39.2 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel