File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change 11use jobserver:: { Acquired , Client , HelperThread } ;
22use 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.
8889fn 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
You can’t perform that action at this time.
0 commit comments