Skip to content

Commit eb48a65

Browse files
committed
Use option for mutable static
1 parent 1f66ffd commit eb48a65

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/oid.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const COUNTER_OFFSET: usize = PROCESS_ID_OFFSET + PROCESS_ID_SIZE;
2424
const MAX_U24: usize = 0xFFFFFF;
2525

2626
static OID_COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
27-
static mut MACHINE_BYTES: [u8; 3] = [0; 3];
27+
static mut MACHINE_BYTES: Option<[u8; 3]> = None;
2828

2929
extern {
3030
fn gethostname(name: *mut libc::c_char, size: libc::size_t) -> libc::c_int;
@@ -191,8 +191,8 @@ impl ObjectId {
191191
// Since the generated machine id is not variable, arising race conditions
192192
// will have the same MACHINE_BYTES result.
193193
unsafe {
194-
if MACHINE_BYTES[0] != 0 || MACHINE_BYTES[1] != 0 || MACHINE_BYTES[2] != 0 {
195-
return Ok(MACHINE_BYTES);
194+
if let Some(bytes) = MACHINE_BYTES.as_ref() {
195+
return Ok(bytes.clone());
196196
}
197197
}
198198

@@ -224,7 +224,7 @@ impl ObjectId {
224224
}
225225
}
226226

227-
unsafe { MACHINE_BYTES = vec };
227+
unsafe { MACHINE_BYTES = Some(vec) };
228228
Ok(vec)
229229
}
230230

0 commit comments

Comments
 (0)