|
@@ -84,6 +84,8 @@ impl<T: ?Sized> OnceFatBox<T> {
|
|
let value = unsafe { Box::from_raw(fat_ptr) };
|
|
let value = unsafe { Box::from_raw(fat_ptr) };
|
|
return Err(value);
|
|
return Err(value);
|
|
}
|
|
}
|
|
|
|
+ // 对once_cell来说这样做是对的,因为其它的线程失败后,不会再更改元数据了。
|
|
|
|
+ // 如果其它的线程仍然需要更改元数据,就不能这样做。
|
|
unsafe {
|
|
unsafe {
|
|
*(self.meta.as_ptr() as *mut _) = ptr::metadata(fat_ptr);
|
|
*(self.meta.as_ptr() as *mut _) = ptr::metadata(fat_ptr);
|
|
}
|
|
}
|