Skip to content

Commit 985dbae

Browse files
committed
Change Option to MaybeUninit
1 parent d55c382 commit 985dbae

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/job_token.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use jobserver::{Acquired, Client, HelperThread};
22
use std::{
33
env,
4+
mem::MaybeUninit,
45
sync::{
56
mpsc::{self, Receiver, Sender},
67
Once,
@@ -87,18 +88,20 @@ impl JobTokenServer {
8788
/// one implicit job token in the wild.
8889
fn jobserver() -> &'static JobTokenServer {
8990
static INIT: Once = Once::new();
90-
static mut JOBSERVER: Option<JobTokenServer> = None;
91+
static mut JOBSERVER: MaybeUninit<JobTokenServer> = MaybeUninit::uninit();
9192

9293
fn _assert_sync<T: Sync>() {}
9394
_assert_sync::<jobserver::Client>();
9495

9596
unsafe {
9697
INIT.call_once(|| {
9798
let server = default_jobserver();
98-
JOBSERVER =
99-
Some(JobTokenServer::new_inner(server).expect("Job server initialization failed"));
99+
JOBSERVER = MaybeUninit::new(
100+
JobTokenServer::new_inner(server).expect("Job server initialization failed"),
101+
);
100102
});
101-
JOBSERVER.as_ref().unwrap()
103+
// Poor man's assume_init_ref, as that'd require a MSRV of 1.55.
104+
&*JOBSERVER.as_ptr()
102105
}
103106
}
104107

0 commit comments

Comments
 (0)