Make init_locking return a reference to the initialized data
This commit is contained in:
parent
a6ac22e7e8
commit
12273cb7f6
@ -497,13 +497,15 @@ impl<T> Once<T> {
|
||||
/// If the value was already initialized the closure is not called and `false` is returned,
|
||||
/// otherwise if the value from the closure initializes the inner value, `true` is returned
|
||||
#[inline]
|
||||
pub fn init_locking<F: FnOnce() -> T>(&self, f: F) -> bool {
|
||||
let mut lock = self.0.lock();
|
||||
if lock.is_some() {
|
||||
return false;
|
||||
pub fn init_locking<F: FnOnce() -> T>(&self, f: F) -> &T {
|
||||
{
|
||||
let mut lock = self.0.lock();
|
||||
if lock.is_none() {
|
||||
*lock = Some(f());
|
||||
}
|
||||
}
|
||||
*lock = Some(f());
|
||||
true
|
||||
|
||||
self.borrow()
|
||||
}
|
||||
|
||||
/// Tries to initialize the inner value by calling the closure without ensuring that no-one
|
||||
|
@ -1351,9 +1351,7 @@ impl<'a, 'tcx> CrateMetadata {
|
||||
translated_source_file: local_version,
|
||||
}
|
||||
}).collect()
|
||||
});
|
||||
|
||||
self.source_map_import_info.borrow()
|
||||
})
|
||||
}
|
||||
|
||||
/// Get the `DepNodeIndex` corresponding this crate. The result of this
|
||||
|
Loading…
x
Reference in New Issue
Block a user