move src/shared_rate_limiter.rs to src/tools/shared_rate_limiter.rs

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
This commit is contained in:
Dietmar Maurer 2022-02-14 14:34:31 +01:00
parent 260147bd73
commit d6644e29fe
4 changed files with 13 additions and 4 deletions

View File

@ -33,9 +33,6 @@ pub mod client_helpers;
pub mod rrd_cache;
mod shared_rate_limiter;
pub use shared_rate_limiter::SharedRateLimiter;
pub mod traffic_control_cache;
/// Get the server's certificate info (from `proxy.pem`).

View File

@ -16,6 +16,9 @@ pub mod apt;
pub mod config;
pub mod disks;
mod shared_rate_limiter;
pub use shared_rate_limiter::SharedRateLimiter;
pub mod statistics;
pub mod subscription;
pub mod systemd;

View File

@ -55,12 +55,21 @@ impl Init for SharedRateLimiterData {
}
}
/// Rate limiter designed for shared memory ([SharedMemory])
///
/// The actual [RateLimiter] is protected by a [SharedMutex] and
/// implements [Init]. This way we can share the limiter between
/// different processes.
pub struct SharedRateLimiter {
shmem: SharedMemory<SharedRateLimiterData>
}
impl SharedRateLimiter {
/// Creates a new mmap'ed instance.
///
/// Data is mapped in `/var/run/proxmox-backup/shmem/tbf/<name>` using
/// `TMPFS`.
pub fn mmap_shmem(name: &str, rate: u64, burst: u64) -> Result<Self, Error> {
let mut path = PathBuf::from(BASE_PATH);

View File

@ -18,7 +18,7 @@ use pbs_api_types::TrafficControlRule;
use pbs_config::ConfigVersionCache;
use super::SharedRateLimiter;
use crate::tools::SharedRateLimiter;
lazy_static::lazy_static!{
/// Shared traffic control cache singleton.