mirror of
https://codeberg.org/YGGverse/psocks.git
synced 2026-03-31 16:35:28 +00:00
use AtomicU64 for stats, rename some members
This commit is contained in:
parent
fcd59fd306
commit
b03bdd0e3a
2 changed files with 48 additions and 28 deletions
38
src/stats.rs
38
src/stats.rs
|
|
@ -1,9 +1,35 @@
|
|||
use rocket::serde::Serialize;
|
||||
use std::sync::atomic::{AtomicU64, Ordering};
|
||||
|
||||
#[derive(Debug, Default, Clone, Copy, Serialize)]
|
||||
#[serde(crate = "rocket::serde")]
|
||||
pub struct Stats {
|
||||
pub entries: usize,
|
||||
pub blocked: usize,
|
||||
pub request: usize,
|
||||
#[derive(Serialize)]
|
||||
pub struct Snapshot {
|
||||
pub request: u64,
|
||||
pub blocked: u64,
|
||||
pub entries: u64,
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Total {
|
||||
entries: AtomicU64,
|
||||
blocked: AtomicU64,
|
||||
request: AtomicU64,
|
||||
}
|
||||
|
||||
impl Total {
|
||||
pub fn snapshot(&self) -> Snapshot {
|
||||
Snapshot {
|
||||
request: self.request.load(Ordering::Relaxed),
|
||||
blocked: self.blocked.load(Ordering::Relaxed),
|
||||
entries: self.entries.load(Ordering::Relaxed),
|
||||
}
|
||||
}
|
||||
pub fn set_entries(&self, value: u64) {
|
||||
self.entries.store(value, Ordering::Relaxed);
|
||||
}
|
||||
pub fn increase_blocked(&self) {
|
||||
self.blocked.fetch_add(1, Ordering::Relaxed);
|
||||
}
|
||||
pub fn increase_request(&self) {
|
||||
self.request.fetch_add(1, Ordering::Relaxed);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue