diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-03-03 06:26:48 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-03-12 09:35:41 +0100 |
| commit | 37e897f4c4cc47b40d672255406b0917cbeda277 (patch) | |
| tree | 72f81164810c4b8f94ad57cbe62f320ce4e6b4ae | |
| parent | e5acb0c8f69d615b46c8e3eed4c84c3abd6fd0cd (diff) | |
| download | rust-37e897f4c4cc47b40d672255406b0917cbeda277.tar.gz rust-37e897f4c4cc47b40d672255406b0917cbeda277.zip | |
Require the metadata loader to be thread-safe
| -rw-r--r-- | src/librustc_metadata/cstore.rs | 4 | ||||
| -rw-r--r-- | src/librustc_trans/lib.rs | 2 | ||||
| -rw-r--r-- | src/librustc_trans_utils/trans_crate.rs | 6 | ||||
| -rw-r--r-- | src/test/run-make/hotplug_codegen_backend/the_backend.rs | 2 |
4 files changed, 7 insertions, 7 deletions
diff --git a/src/librustc_metadata/cstore.rs b/src/librustc_metadata/cstore.rs index 202efb9276a..22c80e8db3e 100644 --- a/src/librustc_metadata/cstore.rs +++ b/src/librustc_metadata/cstore.rs @@ -93,11 +93,11 @@ pub struct CStore { metas: RefCell<IndexVec<CrateNum, Option<Lrc<CrateMetadata>>>>, /// Map from NodeId's of local extern crate statements to crate numbers extern_mod_crate_map: RefCell<NodeMap<CrateNum>>, - pub metadata_loader: Box<MetadataLoader>, + pub metadata_loader: Box<MetadataLoader + Sync>, } impl CStore { - pub fn new(metadata_loader: Box<MetadataLoader>) -> CStore { + pub fn new(metadata_loader: Box<MetadataLoader + Sync>) -> CStore { CStore { metas: RefCell::new(IndexVec::new()), extern_mod_crate_map: RefCell::new(FxHashMap()), diff --git a/src/librustc_trans/lib.rs b/src/librustc_trans/lib.rs index 39eb38658fe..29187c6c0a5 100644 --- a/src/librustc_trans/lib.rs +++ b/src/librustc_trans/lib.rs @@ -200,7 +200,7 @@ impl TransCrate for LlvmTransCrate { target_features(sess) } - fn metadata_loader(&self) -> Box<MetadataLoader> { + fn metadata_loader(&self) -> Box<MetadataLoader + Sync> { box metadata::LlvmMetadataLoader } diff --git a/src/librustc_trans_utils/trans_crate.rs b/src/librustc_trans_utils/trans_crate.rs index 0d4811c4b02..5cf9819288b 100644 --- a/src/librustc_trans_utils/trans_crate.rs +++ b/src/librustc_trans_utils/trans_crate.rs @@ -58,7 +58,7 @@ pub trait TransCrate { fn print_version(&self) {} fn diagnostics(&self) -> &[(&'static str, &'static str)] { &[] } - fn metadata_loader(&self) -> Box<MetadataLoader>; + fn metadata_loader(&self) -> Box<MetadataLoader + Sync>; fn provide(&self, _providers: &mut Providers); fn provide_extern(&self, _providers: &mut Providers); fn trans_crate<'a, 'tcx>( @@ -84,7 +84,7 @@ pub trait TransCrate { pub struct DummyTransCrate; impl TransCrate for DummyTransCrate { - fn metadata_loader(&self) -> Box<MetadataLoader> { + fn metadata_loader(&self) -> Box<MetadataLoader + Sync> { box DummyMetadataLoader(()) } @@ -195,7 +195,7 @@ impl TransCrate for MetadataOnlyTransCrate { } } - fn metadata_loader(&self) -> Box<MetadataLoader> { + fn metadata_loader(&self) -> Box<MetadataLoader + Sync> { box NoLlvmMetadataLoader } diff --git a/src/test/run-make/hotplug_codegen_backend/the_backend.rs b/src/test/run-make/hotplug_codegen_backend/the_backend.rs index 9e87268e699..e266b0f5e83 100644 --- a/src/test/run-make/hotplug_codegen_backend/the_backend.rs +++ b/src/test/run-make/hotplug_codegen_backend/the_backend.rs @@ -28,7 +28,7 @@ use rustc_trans_utils::trans_crate::{TransCrate, MetadataOnlyTransCrate}; struct TheBackend(Box<TransCrate>); impl TransCrate for TheBackend { - fn metadata_loader(&self) -> Box<MetadataLoader> { + fn metadata_loader(&self) -> Box<MetadataLoader + Sync> { self.0.metadata_loader() } |
