mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-09-02 09:09:17 +00:00
fix: eliminate unsafe code in packet construction and stats counters
Replace all UnsafeCell-based counters with safe alternatives: - New ShardedCounter: per-thread TLS accumulation (thread_local crate) with periodic publish to static AtomicU64. Zero atomic RMW on hot path. - ACL RuleStatsTracker: remove unsafe Arc<RuleStats> raw pointer mutation, use two ShardedCounter fields. - ZCPacket: replace set_len on uninitialized BytesMut with write_bytes + copy_nonoverlapping before set_len. - StatsManager UnsafeCounter/MetricData: remove UnsafeCell and unsafe impl Send/Sync, wrap ShardedCounter. last_updated uses AtomicU64 epoch millis. - Throughput: replace UnsafeCell with AtomicU64. - secure_datagram: fix grace-window test timestamp.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# rust-analyzer config
|
||||
# Skip the `easytier-gui` (Tauri) crate because its build scripts require
|
||||
# system libraries webkit2gtk-4.1 / javascriptcoregtk-4.1 that are not
|
||||
# installed on this host. Excluding it keeps rust-analyzer healthy for the
|
||||
# rest of the workspace.
|
||||
|
||||
# Override the command used to run build scripts / collect build data.
|
||||
[cargo.buildScripts]
|
||||
overrideCommand = [
|
||||
"cargo",
|
||||
"check",
|
||||
"--quiet",
|
||||
"--workspace",
|
||||
"--exclude",
|
||||
"easytier-gui",
|
||||
"--message-format=json",
|
||||
"--all-targets",
|
||||
"--keep-going",
|
||||
]
|
||||
|
||||
# Override the command used for diagnostics-on-save.
|
||||
[check]
|
||||
overrideCommand = [
|
||||
"cargo",
|
||||
"check",
|
||||
"--workspace",
|
||||
"--exclude",
|
||||
"easytier-gui",
|
||||
"--message-format=json",
|
||||
"--all-targets",
|
||||
"--keep-going",
|
||||
]
|
||||
Reference in New Issue
Block a user