From ed2cf4813d93f53fa452cf93037fd79e6c7ada16 Mon Sep 17 00:00:00 2001 From: AsterNighT Date: Thu, 17 Oct 2024 22:18:20 +0800 Subject: [PATCH] Fix incorrect use of atomic variable in `src/perf_trace.rs` (#47) Co-authored-by: Pratyush Mishra --- CHANGELOG.md | 1 + src/perf_trace.rs | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a70b41..00565fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ ## Pending +- [\#47](https://github.com/arkworks-rs/std/pull/47) Fix incorrect use of atomic variable in `src/perf_trace.rs` ### Breaking changes diff --git a/src/perf_trace.rs b/src/perf_trace.rs index 8766cb5..028060a 100644 --- a/src/perf_trace.rs +++ b/src/perf_trace.rs @@ -66,11 +66,10 @@ pub mod inner { let msg = $msg(); let start_info = "Start:".yellow().bold(); - let indent_amount = 2 * NUM_INDENT.fetch_add(0, Ordering::Relaxed); + let indent_amount = 2 * NUM_INDENT.fetch_add(1, Ordering::Relaxed); let indent = compute_indent(indent_amount); $crate::perf_trace::println!("{}{:8} {}", indent, start_info, msg); - NUM_INDENT.fetch_add(1, Ordering::Relaxed); $crate::perf_trace::TimerInfo { msg: msg.to_string(), time: Instant::now(), @@ -110,8 +109,7 @@ pub mod inner { let end_info = "End:".green().bold(); let message = format!("{} {}", $time.msg, $msg()); - NUM_INDENT.fetch_sub(1, Ordering::Relaxed); - let indent_amount = 2 * NUM_INDENT.fetch_add(0, Ordering::Relaxed); + let indent_amount = 2 * NUM_INDENT.fetch_sub(1, Ordering::Relaxed); let indent = compute_indent(indent_amount); // Todo: Recursively ensure that *entire* string is of appropriate @@ -144,7 +142,7 @@ pub mod inner { let start_indent_amount = 2 * NUM_INDENT.fetch_add(0, Ordering::Relaxed); let start_indent = compute_indent(start_indent_amount); - let msg_indent_amount = 2 * NUM_INDENT.fetch_add(0, Ordering::Relaxed) + 2; + let msg_indent_amount = start_indent_amount + 2; let msg_indent = compute_indent_whitespace(msg_indent_amount); let mut final_message = "\n".to_string(); for line in $msg().lines() {