Skip to content

Commit 55903ce

Browse files
committed
Replace LazyLock -> OnceLock
To restore support for Rust 1.70. LazyLock would require 1.80.
1 parent dd424cb commit 55903ce

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

gen/build/src/cfg.rs

+7-5
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ mod r#impl {
348348
use std::fmt::{self, Debug};
349349
use std::marker::PhantomData;
350350
use std::ops::{Deref, DerefMut};
351-
use std::sync::{LazyLock, PoisonError, RwLock};
351+
use std::sync::{OnceLock, PoisonError, RwLock};
352352

353353
struct CurrentCfg {
354354
include_prefix: InternedString,
@@ -377,8 +377,10 @@ mod r#impl {
377377
}
378378
}
379379

380-
static CURRENT: LazyLock<RwLock<CurrentCfg>> =
381-
LazyLock::new(|| RwLock::new(CurrentCfg::default()));
380+
fn current() -> &'static RwLock<CurrentCfg> {
381+
static CURRENT: OnceLock<RwLock<CurrentCfg>> = OnceLock::new();
382+
CURRENT.get_or_init(|| RwLock::new(CurrentCfg::default()))
383+
}
382384

383385
thread_local! {
384386
// FIXME: If https://github.com/rust-lang/rust/issues/77425 is resolved,
@@ -401,7 +403,7 @@ mod r#impl {
401403

402404
impl<'a> Cfg<'a> {
403405
fn current() -> super::Cfg<'a> {
404-
let current = CURRENT.read().unwrap_or_else(PoisonError::into_inner);
406+
let current = current().read().unwrap_or_else(PoisonError::into_inner);
405407
let include_prefix = current.include_prefix.str();
406408
let exported_header_dirs = current.exported_header_dirs.vec();
407409
let exported_header_prefixes = current.exported_header_prefixes.vec();
@@ -481,7 +483,7 @@ mod r#impl {
481483
doxygen,
482484
marker: _,
483485
} = cfg;
484-
let mut current = CURRENT.write().unwrap_or_else(PoisonError::into_inner);
486+
let mut current = current().write().unwrap_or_else(PoisonError::into_inner);
485487
current.include_prefix = intern(include_prefix);
486488
current.exported_header_dirs = vec::intern(exported_header_dirs);
487489
current.exported_header_prefixes = vec::intern(exported_header_prefixes);

0 commit comments

Comments
 (0)