Skip to content

Commit 5d85ad4

Browse files
committed
Remove unsafe in example
1 parent 773a4ae commit 5d85ad4

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

examples/tree01.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1+
use std::sync::atomic::{AtomicU32, Ordering};
12
use cdc::*;
23

34
type IntHash = u32;
45

5-
static mut HASH_ID: IntHash = 0;
6+
static HASH_ID: AtomicU32 = AtomicU32::new(0);
67
fn get_new_hash_id() -> IntHash {
7-
unsafe {
8-
let id = HASH_ID;
9-
HASH_ID += 1;
10-
id
11-
}
8+
HASH_ID.fetch_add(1, Ordering::Relaxed)
129
}
1310

1411
fn my_new_node(level: usize, children: &Vec<IntHash>) -> Node<IntHash> {
@@ -27,9 +24,7 @@ fn main() {
2724
level: *level,
2825
});
2926

30-
unsafe {
31-
HASH_ID = levels.len() as IntHash;
32-
}
27+
HASH_ID.store(levels.len() as _, Ordering::Relaxed);
3328

3429
for node in NodeIter::new(hashed_chunk_it, my_new_node, 0) {
3530
println!("{:?}", node);

0 commit comments

Comments
 (0)